      ***************************************************************
       IDENTIFICATION DIVISION.
      ***************************************************************
       PROGRAM-ID.    P231F09.
       AUTHOR.        B.W. MCNULTY.
       DATE-WRITTEN.  APRIL 1, 1994.
      ***************************************************************
      *                                                             *
      *   PROGRAM:  P231F09 - FDAT - LINE TABLE MAINTENANCE         *
      *                                                             *
      *   SYSTEM:   FDAT - TABLE MAINTENANCE SYSTEM                 *
      *                                                             *
      *   FUNCTION: THIS PROGRAM PROVIDES INQUIRY AND UPDATE ACCESS *
      *             TO THE LINE TABLE.                              *
      *                                                             *
      *   LANGUAGE: COBOL II / SQL / CICS                           *
      *                                                             *
      *   ENTRY:    CICS TRANSACTION ID "FD09" THRU "FDAT"          *
      *                                                             *
      ***************************************************************
      *                                                             *
      *   DATABASE TABLES AND FILES:                                *
      *                                                             *
      *       T231ACS  - SECURITY ACCESS TABLE                      *
      *       T231SEC  - SECURITY DISTIRBUTION TABLE                *
      *       T231DIST - DISTRIBUTION TABLE                         *
      *       T231BOOK - BOOK TABLE                                 *
      *       T231RPT  - REPORT TABLE                               *
      *       T231LINE - LINE TABLE                                 *
      *       T231COL  - COLUMN TABLE                               *
      *       T231ORG  - ORGANIZATION TABLE                         *
      *       T231RGN  - REGION TABLE                               *
      *       T231PRIM - PRIME TABLE                                *
      *                                                             *
      ***************************************************************
      *                                                             *
      *   CALLED SUBROUTINES:                                       *
      *                                                             *
      ***************************************************************
      *                                                             *
      *   MODIFICATIONS:                                            *
      *                                                             *
      *   DATE      PROGRAMMER     DESCRIPTION                      *
      *   --------  -------------  -------------------------------  *
      *   04/01/94  B.W. MCNULTY   ORIGINAL VERSION.                *
      *                                                             *
      ***************************************************************

       ENVIRONMENT DIVISION.

           EJECT
       DATA DIVISION.

       WORKING-STORAGE SECTION.

       01  FILLER                      PIC X(35) VALUE
           'WORKING STORAGE BEGINS HERE ======>'.
      **===========================================================**
      **   PROGRAM ID CONSTANTS                                    **
      **===========================================================**
       01  W0000-PROGRAM-INFO.
           05  PROGRAM-NAME            PIC  X(08)  VALUE 'P231F09'.
           05  MAP-NAME                PIC  X(08)  VALUE 'M231F09'.
           05  SET-NAME                PIC  X(08)  VALUE 'M231F09'.
           05  MAP-NAME-1              PIC  X(08)  VALUE 'M231F09'.
           05  MAP-NAME-A              PIC  X(08)  VALUE 'M231F9A'.
           05  MAP-NAME-B              PIC  X(08)  VALUE 'M231F9B'.
           05  TXN-ID                  PIC  X(04)  VALUE 'FD09'.
           05  MAP-DATA                PIC  X(1920)  VALUE SPACES.

           05  ERROR-FLAG              PIC  X(01)  VALUE 'N'.
               88  NO-ERRORS                       VALUE 'N'.
               88  ERRORS                          VALUE 'Y'.

           05  M-MSG-24I               PIC  X(80)  VALUE SPACES.

      **===========================================================**
      **   MISCELLANEOUS WORK FIELDS                               **
      **===========================================================**
           EJECT
       01  W0001-MISCELLANEOUS-FIELDS.
           05  W0001-PGM-XCTL-NO       PIC  X(08)  VALUE SPACES.
           05  W0001-TXN-ID            PIC  X(04)  VALUE SPACES.
           05  W0001-XCTL-PGM-ID       PIC  X(08)  VALUE 'P231F09'.
           05  W0001-LINK-PGM-ID       PIC  X(08)  VALUE 'P231F09'.
           05  W0001-LINK-CA           PIC  X(999) VALUE SPACES.
           05  W0001-SCREEN-LINE-LIMIT PIC S9(09)  COMP-3 VALUE +13.
           05  W0001-COPY-CTR          PIC S9(09)  COMP-3 VALUE +0.

           05  W0001-ABSTIME           PIC S9(16)  COMP.
           05  W0001-HHCMMCSS.
               10  W0001-HR            PIC  X(02).
               10  W0001-C1            PIC  X(01).
               10  W0001-MIN           PIC  X(02).
               10  W0001-C2            PIC  X(01).
               10  W0001-SEC           PIC  X(02).
           05  W0001-MMSDDSYY.
               10  W0001-MON           PIC  X(02).
               10  W0001-S1            PIC  X(01).
               10  W0001-DAY           PIC  X(02).
               10  W0001-S1            PIC  X(01).
               10  W0001-YEAR          PIC  X(02).
           05  W0001-YYYY.
               10  W0001-YY            PIC  X(04).

           05  W0001-DB2-ZERO-DATE     PIC  X(10) VALUE '01/01/0001'.
           05  W0001-DB2-MAX-DATE      PIC  X(10) VALUE '12/31/9999'.
           05  W0001-DB2-DATE.
               10  W0001-DB2-MM        PIC  X(02)  VALUE '01'.
               10  W0001-DB2-DASH1     PIC  X(01)  VALUE '/'.
               10  W0001-DB2-DD        PIC  X(02)  VALUE '01'.
               10  W0001-DB2-DASH2     PIC  X(01)  VALUE '/'.
               10  W0001-DB2-CC        PIC  X(02)  VALUE '19'.
               10  W0001-DB2-YY        PIC  X(02)  VALUE '99'.
           05  W0001-MMYY-DATE.
               10  W0001-MM            PIC  X(02).
               10  W0001-YY            PIC  X(02).

           05  W0001-X                 PIC S9(09)  COMP.
           05  W0001-IX                PIC S9(09)  COMP.
           05  W0001-IX2               PIC S9(09)  COMP.

           05  W0001-PD-X                      PIC X(02).
           05  W0001-PD  REDEFINES W0001-PD-X  PIC 9(02).

           05  W0001-OLD-LINE-NBR.
               10  FILLER                PIC  X(01)  VALUE 'L'.
               10  W0001-HOLD-OLD-LN-N   PIC  X(03)  VALUE SPACES.

           05  W0001-NEW-LINE-NBR.
               10  FILLER                PIC  X(01)  VALUE 'L'.
               10  W0001-HOLD-NEW-LN-N   PIC  X(03)  VALUE SPACES.
               10  W0001-HOLD-NEW-LN-N-RD REDEFINES
                   W0001-HOLD-NEW-LN-N   PIC  9(03).

           05  W0001-NEW-LINE-NBR-B.
               10  FILLER                PIC  X(01)  VALUE 'L'.
               10  W0001-SCRN-B-NEW-LN-N PIC  X(03)  VALUE SPACES.
               10  W0001-SCRN-B-NEW-LN-N-RD REDEFINES
                   W0001-SCRN-B-NEW-LN-N PIC  9(03).

           05  W0001-LN-N                      PIC X(03).
           05  W0001-LN  REDEFINES W0001-LN-N  PIC 9(03).

           05  W0001-FISCAL-PERIOD.
               10  W0001-FISCAL-CC       PIC  X(02)  VALUE SPACES.
               10  W0001-FISCAL-YY       PIC  X(02)  VALUE SPACES.
               10  W0001-FISCAL-MM       PIC  X(02)  VALUE SPACES.

           05  W0001-FYPD.
               10  W0001-FYPD-YY         PIC  X(02)  VALUE SPACES.
               10  W0001-FYPD-MM         PIC  X(02)  VALUE SPACES.

           05  W0001-SELECTION-FLAG      PIC  X(01)  VALUE 'N'.
               88  W0001-LINES-SELECTED              VALUE 'Y'.
               88  W0001-NO-LINES-SELECTED           VALUE 'N'.

           EJECT
       01  W0002-T231LINE.

           05  W0002-T231LINE-REC-TYPE-00.
               10  W0002-T231LINE-COMMENT-IND PIC X(01).
                   88  W0002-T231LINE-COMMENT-REC       VALUE '/'.
               10  W0002-T231LINE-COMMENT     PIC X(79).
               10  FILLER                     PIC X(03).

           05  W0002-T231LINE-REC-TYPE-01     REDEFINES
               W0002-T231LINE-REC-TYPE-00.
               10  W0002-F-LN-C               PIC X(03).
               10  FILLER                     PIC X(01).
               10  W0002-LINE-RECTYP-C        PIC X(01).
                   88  W0002-T231LINE-REC-TYPE-1  VALUES 'P', 'R', 'O'.
                   88  W0002-T231LINE-REC-TYPE-2  VALUES '0' THRU '9'.
               10  FILLER                     PIC X(01).
               10  W0002-F-LINEID-X01         PIC X(74).
               10  FILLER                     PIC X(03).

           05  W0002-T231LINE-REC-TYPE-02     REDEFINES
               W0002-T231LINE-REC-TYPE-00.
               10  W0002-F-LN-C-02            PIC X(03).
               10  FILLER                     PIC X(01).
               10  W0002-F-LN-N               PIC X(03).
               10  FILLER                     PIC X(01).
               10  W0002-F-LN-DESC            PIC X(32).
               10  FILLER                     PIC X(01).
               10  W0002-F-FMTTYP-C           PIC X(01).
               10  FILLER                     PIC X(01).
               10  W0002-F-CALC01-CLN         PIC X(04).
               10  W0002-F-CALC01-XLN         PIC X(01).
               10  W0002-F-CALC02-CLN         PIC X(04).
               10  W0002-F-CALC02-XLN         PIC X(01).
               10  W0002-F-CALC03-CLN         PIC X(04).
               10  W0002-F-CALC03-XLN         PIC X(01).
               10  W0002-F-CALC04-CLN         PIC X(04).
               10  W0002-F-CALC04-XLN         PIC X(01).
               10  W0002-F-CALC05-CLN         PIC X(04).
               10  W0002-F-CALC05-XLN         PIC X(01).
               10  W0002-F-CALC06-CLN         PIC X(04).
               10  W0002-F-CALC06-XLN         PIC X(01).
               10  W0002-F-CALC07-CLN         PIC X(04).
               10  W0002-F-CALC07-XLN         PIC X(01).
               10  W0002-F-CALC08-CLN         PIC X(04).
               10  W0002-F-CALC08-XLN         PIC X(01).

           EJECT
       01  W0003-CALC-TABLE.
           05  W0003-CALC-TABLE-ENTRIES OCCURS 40 TIMES
                                        INDEXED BY W0003-IX.
               10  W0003-CALC-C         PIC X(04).
               10  W0003-CALC-X         PIC X(01).

           EJECT
      **===========================================================**
      **   FDAT - TRANSACTION ID'S                                 **
      **===========================================================**
           COPY C231WTXN.

           EJECT
      **===========================================================**
      **   PROGRAM MAP AREA                                        **
      **===========================================================**
           COPY M231F09.

           EJECT
      **===========================================================**
      **   CICS COPYBOOKS AREA                                     **
      **===========================================================**
           COPY C108CDBA.

           EJECT
           COPY DFHAID.

           EJECT
           COPY C751CONW.

           EJECT
           COPY C231MSGS.

           EJECT
           COPY C108W900.

           EJECT
           COPY C108W998.

           EJECT
           COPY D972ERRM.

           EJECT
      **===========================================================**
      **   DATE ROUTINE.                                           **
      **===========================================================**
           COPY NSDTREC.

           EJECT
      **===========================================================**
      **   WORKING STORAGE COMMAREA                                **
      **===========================================================**
           COPY C231COMM.
               10  MAP-SAVE-AREA REDEFINES CA-MAP-SAVE-AREA.
                   15  ACTIVE-MAP-FLAG            PIC  X(01).
                       88  MAP-1-ACTIVE           VALUE '1'.
                       88  MAP-A-ACTIVE           VALUE 'A'.
                       88  MAP-B-ACTIVE           VALUE 'B'.

                   15  DISPLAY-MODE-FLAG          PIC  X(01).
                       88  DISPLAY-HEADERS        VALUE '1'.
                       88  DISPLAY-LINES          VALUE '2'.

                   15  DELETE-REQUESTED-FLAG      PIC  X(01).
                       88  DELETE-REQUESTED       VALUE 'Y'.
                       88  DELETE-NOT-REQUESTED   VALUE 'N'.

                   15  INSERT-FLAG                PIC  X(01).
                       88  INSERT-SUCCESSFUL      VALUE 'Y'.
                       88  INSERT-NOT-SUCCESSFUL  VALUE 'N'.

                   15  WS-M-INDEX                 PIC S9(04) COMP.

                   15  WS-M-MIN-VALUES.
                       20  WS-M-MIN-LN-C          PIC  X(03).
                       20  WS-M-MIN-RECTYP-C      PIC  X(01).
                       20  WS-M-MIN-LN-N          PIC  X(03).
                       20  WS-M-MIN-SEQ-N         PIC S9(09) COMP.

                   15  WS-M-MAX-VALUES.
                       20  WS-M-MAX-LN-C          PIC  X(03).
                       20  WS-M-MAX-RECTYP-C      PIC  X(01).
                       20  WS-M-MAX-LN-N          PIC  X(03).
                       20  WS-M-MAX-SEQ-N         PIC S9(09) COMP.

                   15  WS-M-DB-SAVE-AREA OCCURS 11 TIMES.
                       20  WS-M-F-LN-C          PIC  X(03).
                       20  WS-M-F-LN-N          PIC  X(03).
                       20  WS-M-DB-RECTYP-C     PIC  X(01).
                       20  WS-M-A-SEQ-N         PIC S9(09) COMP.
                       20  WS-M-F-LN-X          PIC  X(80).
                       20  WS-M-F-FMTTYP-C      PIC  X(01).
                       20  WS-M-F-CALC01-C      PIC  X(04).
                       20  WS-M-F-CALC02-C      PIC  X(04).
                       20  WS-M-F-CALC03-C      PIC  X(04).
                       20  WS-M-F-CALC04-C      PIC  X(04).
                       20  WS-M-F-CALC05-C      PIC  X(04).
                       20  WS-M-F-CALC06-C      PIC  X(04).
                       20  WS-M-F-CALC07-C      PIC  X(04).
                       20  WS-M-F-CALC08-C      PIC  X(04).
                       20  WS-M-F-CALC01-X      PIC  X(01).
                       20  WS-M-F-CALC02-X      PIC  X(01).
                       20  WS-M-F-CALC03-X      PIC  X(01).
                       20  WS-M-F-CALC04-X      PIC  X(01).
                       20  WS-M-F-CALC05-X      PIC  X(01).
                       20  WS-M-F-CALC06-X      PIC  X(01).
                       20  WS-M-F-CALC07-X      PIC  X(01).
                       20  WS-M-F-CALC08-X      PIC  X(01).

           EJECT
      **===========================================================**
      **   DB2 INCLUDES                                            **
      **===========================================================**
           EXEC SQL
                INCLUDE SQLCA
           END-EXEC.

           EJECT
           EXEC SQL
                INCLUDE T231ACS
           END-EXEC.

           EJECT
           EXEC SQL
                INCLUDE T231SEC
           END-EXEC.

           EJECT
           EXEC SQL
                INCLUDE T231DIST
           END-EXEC.

           EJECT
           EXEC SQL
                INCLUDE T231BOOK
           END-EXEC.

           EJECT
           EXEC SQL
                INCLUDE T231RPT
           END-EXEC.

           EJECT
           EXEC SQL
                INCLUDE T231LINE
           END-EXEC.

           EJECT
           EXEC SQL
                INCLUDE T231COL
           END-EXEC.

           EJECT
           EXEC SQL
                INCLUDE T231ORG
           END-EXEC.

           EJECT
           EXEC SQL
                INCLUDE T231RGN
           END-EXEC.

           EJECT
           EXEC SQL
                INCLUDE T231PRIM
           END-EXEC.

           EJECT
      **===========================================================**
      **   DB2 CURSORS                                             **
      **===========================================================**

      **===========================================================**
      **   CSR_1 IS THE FORWARD SCROLLING CURSOR FOR ALL ROWS.     **
      **===========================================================**
           EXEC SQL
                DECLARE CSR_1 CURSOR FOR
                 SELECT F_LN_C
                      , F_LN_N
                      , A_SEQ_N
                      , DB_RECTYP_C
                      , F_LN_X
                      , F_FMTTYP_C
                      , F_CALC01_C
                      , F_CALC02_C
                      , F_CALC03_C
                      , F_CALC04_C
                      , F_CALC05_C
                      , F_CALC06_C
                      , F_CALC07_C
                      , F_CALC08_C
                      , F_CALC01_X
                      , F_CALC02_X
                      , F_CALC03_X
                      , F_CALC04_X
                      , F_CALC05_X
                      , F_CALC06_X
                      , F_CALC07_X
                      , F_CALC08_X
                   FROM D231.T231LINE
                  WHERE (F_LN_C        = :DCLT231LINE.F-LN-C
                     AND F_LN_N        = :DCLT231LINE.F-LN-N
                     AND A_SEQ_N       > :DCLT231LINE.A-SEQ-N)

                     OR (F_LN_C        = :DCLT231LINE.F-LN-C
                     AND F_LN_N        > :DCLT231LINE.F-LN-N)

                     OR (F_LN_C        > :DCLT231LINE.F-LN-C)
                  ORDER BY
                        F_LN_C
                      , F_LN_N
                      , A_SEQ_N
           END-EXEC.

      **===========================================================**
      **   CSR_2 IS THE BACKWARD SCROLLING CURSOR FOR ALL ROWS.    **
      **===========================================================**
           EXEC SQL
                DECLARE CSR_2 CURSOR FOR
                 SELECT F_LN_C
                      , F_LN_N
                      , A_SEQ_N
                      , DB_RECTYP_C
                      , F_LN_X
                      , F_FMTTYP_C
                      , F_CALC01_C
                      , F_CALC02_C
                      , F_CALC03_C
                      , F_CALC04_C
                      , F_CALC05_C
                      , F_CALC06_C
                      , F_CALC07_C
                      , F_CALC08_C
                      , F_CALC01_X
                      , F_CALC02_X
                      , F_CALC03_X
                      , F_CALC04_X
                      , F_CALC05_X
                      , F_CALC06_X
                      , F_CALC07_X
                      , F_CALC08_X
                   FROM D231.T231LINE
                  WHERE (F_LN_C        = :DCLT231LINE.F-LN-C
                     AND F_LN_N        = :DCLT231LINE.F-LN-N
                     AND A_SEQ_N       < :DCLT231LINE.A-SEQ-N)

                     OR (F_LN_C        = :DCLT231LINE.F-LN-C
                     AND F_LN_N        < :DCLT231LINE.F-LN-N)

                     OR (F_LN_C        < :DCLT231LINE.F-LN-C)
                  ORDER BY
                        F_LN_C  DESC
                      , F_LN_N  DESC
                      , A_SEQ_N DESC
           END-EXEC.

      **===========================================================**
      **   CSR_3 IS THE FORWARD SCROLLING CURSOR FOR HEADER ROWS.  **
      **===========================================================**
           EXEC SQL
                DECLARE CSR_3 CURSOR FOR
                 SELECT F_LN_C
                      , F_LN_N
                      , A_SEQ_N
                      , DB_RECTYP_C
                      , F_LN_X
                      , F_FMTTYP_C
                      , F_CALC01_C
                      , F_CALC02_C
                      , F_CALC03_C
                      , F_CALC04_C
                      , F_CALC05_C
                      , F_CALC06_C
                      , F_CALC07_C
                      , F_CALC08_C
                      , F_CALC01_X
                      , F_CALC02_X
                      , F_CALC03_X
                      , F_CALC04_X
                      , F_CALC05_X
                      , F_CALC06_X
                      , F_CALC07_X
                      , F_CALC08_X
                   FROM D231.T231LINE
                  WHERE F_LN_N          = '  '
                    AND DB_RECTYP_C    IN ('P','R','O')
                    AND F_LN_C         >= :DCLT231LINE.F-LN-C
                  ORDER BY
                        F_LN_C
                      , F_LN_N
                      , A_SEQ_N
           END-EXEC.

      **===========================================================**
      **   CSR_4 IS THE BACKWARD SCROLLING CURSOR FOR HEADER ROWS. **
      **===========================================================**
           EXEC SQL
                DECLARE CSR_4 CURSOR FOR
                 SELECT F_LN_C
                      , F_LN_N
                      , A_SEQ_N
                      , DB_RECTYP_C
                      , F_LN_X
                      , F_FMTTYP_C
                      , F_CALC01_C
                      , F_CALC02_C
                      , F_CALC03_C
                      , F_CALC04_C
                      , F_CALC05_C
                      , F_CALC06_C
                      , F_CALC07_C
                      , F_CALC08_C
                      , F_CALC01_X
                      , F_CALC02_X
                      , F_CALC03_X
                      , F_CALC04_X
                      , F_CALC05_X
                      , F_CALC06_X
                      , F_CALC07_X
                      , F_CALC08_X
                   FROM D231.T231LINE
                  WHERE F_LN_N          = '  '
                    AND DB_RECTYP_C    IN ('P','R','O')
                    AND F_LN_C         <= :DCLT231LINE.F-LN-C
                  ORDER BY
                        F_LN_C  DESC
                      , F_LN_N  DESC
                      , A_SEQ_N DESC
           END-EXEC.

      **===========================================================**
      **   CSR_5 IS USED FOR THE COPY FUNCTION.                    **
      **===========================================================**
           EXEC SQL
                DECLARE CSR_5 CURSOR FOR
                 SELECT F_LN_C
                      , F_LN_N
                      , A_SEQ_N
                      , DB_RECTYP_C
                      , F_LN_X
                      , F_FMTTYP_C
                      , F_CALC01_C
                      , F_CALC02_C
                      , F_CALC03_C
                      , F_CALC04_C
                      , F_CALC05_C
                      , F_CALC06_C
                      , F_CALC07_C
                      , F_CALC08_C
                      , F_CALC01_X
                      , F_CALC02_X
                      , F_CALC03_X
                      , F_CALC04_X
                      , F_CALC05_X
                      , F_CALC06_X
                      , F_CALC07_X
                      , F_CALC08_X
                   FROM D231.T231LINE
                  WHERE F_LN_C        = :DCLT231LINE.F-LN-C
                  ORDER BY
                        F_LN_C
                      , F_LN_N
                      , A_SEQ_N
           END-EXEC.

      **===========================================================**
      **   CSR_6 IS USED RESEQUENCE LINE NUMBERS ON ADDS.          **
      **===========================================================**
           EXEC SQL
                DECLARE CSR_6 CURSOR FOR
                 SELECT F_LN_C
                      , F_LN_N
                      , A_SEQ_N
                      , DB_RECTYP_C
                      , F_LN_X
                      , F_FMTTYP_C
                      , F_CALC01_C
                      , F_CALC02_C
                      , F_CALC03_C
                      , F_CALC04_C
                      , F_CALC05_C
                      , F_CALC06_C
                      , F_CALC07_C
                      , F_CALC08_C
                      , F_CALC01_X
                      , F_CALC02_X
                      , F_CALC03_X
                      , F_CALC04_X
                      , F_CALC05_X
                      , F_CALC06_X
                      , F_CALC07_X
                      , F_CALC08_X
                   FROM D231.T231LINE
                  WHERE F_LN_C        = :DCLT231LINE.F-LN-C
                    AND F_LN_N        > :DCLT231LINE.F-LN-N
                    AND F_LN_N        < '163'
                  ORDER BY
                        F_LN_C  DESC
                      , F_LN_N  DESC
                      , A_SEQ_N DESC
           END-EXEC.

      **===========================================================**
      **   CSR_7 IS USED TO RESEQUENCE LINE NUMBERS ON DELETES.    **
      **===========================================================**
           EXEC SQL
                DECLARE CSR_7 CURSOR FOR
                 SELECT F_LN_C
                      , F_LN_N
                      , A_SEQ_N
                      , DB_RECTYP_C
                      , F_LN_X
                      , F_FMTTYP_C
                      , F_CALC01_C
                      , F_CALC02_C
                      , F_CALC03_C
                      , F_CALC04_C
                      , F_CALC05_C
                      , F_CALC06_C
                      , F_CALC07_C
                      , F_CALC08_C
                      , F_CALC01_X
                      , F_CALC02_X
                      , F_CALC03_X
                      , F_CALC04_X
                      , F_CALC05_X
                      , F_CALC06_X
                      , F_CALC07_X
                      , F_CALC08_X
                   FROM D231.T231LINE
                  WHERE F_LN_C        = :DCLT231LINE.F-LN-C
                    AND F_LN_N        > :DCLT231LINE.F-LN-N
                    AND F_LN_N        < '163'
                  ORDER BY
                        F_LN_C
                      , F_LN_N
                      , A_SEQ_N
           END-EXEC.

      **===========================================================**
      **   CSR_8 WILL RETRIEVE ALL ROWS FOR THE SELECTED LINE.     **
      **===========================================================**
           EXEC SQL
                DECLARE CSR_8 CURSOR FOR
                 SELECT F_LN_C
                      , F_LN_N
                      , A_SEQ_N
                      , DB_RECTYP_C
                      , F_LN_X
                      , F_FMTTYP_C
                      , F_CALC01_C
                      , F_CALC02_C
                      , F_CALC03_C
                      , F_CALC04_C
                      , F_CALC05_C
                      , F_CALC06_C
                      , F_CALC07_C
                      , F_CALC08_C
                      , F_CALC01_X
                      , F_CALC02_X
                      , F_CALC03_X
                      , F_CALC04_X
                      , F_CALC05_X
                      , F_CALC06_X
                      , F_CALC07_X
                      , F_CALC08_X
                   FROM D231.T231LINE
                  WHERE F_LN_C          = :DCLT231LINE.F-LN-C
                    AND F_LN_N          = :DCLT231LINE.F-LN-N
                  ORDER BY
                        F_LN_C
                      , F_LN_N
                      , A_SEQ_N
           END-EXEC.


      **===========================================================**
      **   END OF WORKING STORAGE SECTION                          **
      **===========================================================**
           EJECT
       LINKAGE SECTION.

       01  DFHCOMMAREA.
           05  FILLER                   PICTURE X(4096).

           EJECT
       PROCEDURE DIVISION.

           EXEC CICS HANDLE ABEND
                LABEL    (Z900-HANDLE-ERROR)
           END-EXEC.

           EXEC CICS HANDLE CONDITION
                ERROR    (Z900-HANDLE-ERROR)
                ILLOGIC  (Z900-HANDLE-ERROR)
                DSIDERR  (Z900-HANDLE-ERROR)
                INVREQ   (Z900-HANDLE-ERROR)
                IOERR    (Z900-HANDLE-ERROR)
                ISCINVREQ(Z900-HANDLE-ERROR)
                NOSPACE  (Z900-HANDLE-ERROR)
           END-EXEC.

       A000-MAINLINE.

           MOVE 'A000'      TO CA-PARAGRAPH-NBR.

           PERFORM A100-INITIALIZATION.

           IF  CA-CURRENT-PGM = PROGRAM-NAME
               PERFORM A300-ACCEPT-SCREEN

               EVALUATE TRUE
                   WHEN MAP-1-ACTIVE
                        PERFORM A001-PROCESS-MAP-1
                   WHEN MAP-A-ACTIVE
                        PERFORM A002-PROCESS-MAP-A
                   WHEN MAP-B-ACTIVE
                        PERFORM A003-PROCESS-MAP-B
               END-EVALUATE
           END-IF.

           PERFORM A200-DISPLAY-SCREEN.

           PERFORM Y100-REPEAT-PROGRAM.

           EJECT
       A001-PROCESS-MAP-1.

           MOVE 'A001'      TO CA-PARAGRAPH-NBR.

           SET INSERT-NOT-SUCCESSFUL    TO TRUE.

           IF  EIBAID NOT EQUAL DFHPF10
               SET DELETE-NOT-REQUESTED TO TRUE
           END-IF.

           EVALUATE TRUE
               WHEN EIBAID = DFHENTER
                    PERFORM B000-PROCESS-ENTER-KEY
               WHEN EIBAID = DFHCLEAR
                    PERFORM Y400-RETURN-TO-CICS
               WHEN EIBAID = DFHPF3
                    MOVE MAIN-MENU-TXN-ID TO W0001-TXN-ID
                    PERFORM Y700-START-TRANSACTION
               WHEN EIBAID = DFHPF5
                    PERFORM B200-CHECK-FOR-SELECTION
                    IF  W0001-LINES-SELECTED
                        MOVE W9999-MSG-021 TO M-MSG-22BI
                        MOVE -1            TO M-LN-XBL
                    ELSE
                        SET MAP-A-ACTIVE TO TRUE
                    END-IF
                    SET CA-ENTRY         TO TRUE
                    MOVE W9999-MSG-021   TO M-MSG-22AI
                    MOVE -1              TO M-LN-CAL
               WHEN EIBAID = DFHPF6
                    PERFORM B800-CHECK-FOR-SELECTION
                    IF  W0001-LINES-SELECTED
                        IF  M-LN-CI > ' '
                        AND M-LN-NI > ' '
                            CONTINUE
                        ELSE
                            PERFORM F500-RESEQUENCE-LINE-NBRS
                            IF  NO-ERRORS
                                PERFORM F600-UPDATE-LINE-CALCS
                            END-IF
                        END-IF
                        IF  NO-ERRORS
                            IF  M-LN-CI > ' '
                            AND M-LN-NI > ' '
                                CONTINUE
                            ELSE
                                ADD 1 TO W0001-SCRN-B-NEW-LN-N-RD
                            END-IF
                            MOVE W0001-SCRN-B-NEW-LN-N
                              TO M-LN-NBI
                                 F-LN-N        IN DCLT231LINE
                            MOVE +1 TO A-SEQ-N IN DCLT231LINE
                            SET DUP-KEY  TO TRUE
                            PERFORM E500-INSERT-T231LINE
                            IF  DB2-NORMAL
                                SET INSERT-SUCCESSFUL TO TRUE
                                SET MAP-B-ACTIVE      TO TRUE
                                SET CA-ENTRY          TO TRUE
                                MOVE W9999-MSG-021    TO M-MSG-22BI
                                MOVE -1               TO M-LN-XBL
                            ELSE
                                SET ERRORS TO TRUE
                                MOVE W9999-MSG-022    TO M-MSG-22I
                                MOVE -1               TO M-LN-CL
                            END-IF
                        END-IF
                    ELSE
                        SET ERRORS           TO TRUE
                        MOVE W9999-MSG-046   TO M-MSG-22I
                        MOVE -1              TO M-ACT-CL (1)
                    END-IF
               WHEN EIBAID = DFHPF7
                    PERFORM D000-PROCESS-PREV-PAGE
                    IF  M-DATA-XI (1) EQUAL SPACES
                        INITIALIZE WS-M-MAX-VALUES
                        SET NO-ERRORS       TO TRUE
                        PERFORM C000-PROCESS-NEXT-PAGE
                        MOVE W9999-MSG-005  TO M-MSG-22I
                    END-IF
               WHEN EIBAID = DFHPF8
                    PERFORM C000-PROCESS-NEXT-PAGE
               WHEN EIBAID = DFHPF9
                    IF  DISPLAY-HEADERS
                        SET DISPLAY-LINES   TO TRUE
                    ELSE
                        SET DISPLAY-HEADERS TO TRUE
                    END-IF
                    MOVE WS-M-MIN-VALUES
                      TO WS-M-MAX-VALUES
                    MOVE ZEROES TO WS-M-MAX-SEQ-N
                    PERFORM C000-PROCESS-NEXT-PAGE
               WHEN EIBAID = DFHPF10
                    PERFORM I000-DELETE-T231LINE-ENTRIES
                    IF  NO-ERRORS
                        MOVE WS-M-MIN-VALUES
                          TO WS-M-MAX-VALUES
                        MOVE ZEROES        TO WS-M-MAX-SEQ-N
                        PERFORM C000-PROCESS-NEXT-PAGE
                        MOVE W9999-MSG-014 TO M-MSG-22I
                    END-IF
               WHEN EIBAID = DFHPF11
                    PERFORM H000-COPY-TO-NEW-LINE
                    IF  NO-ERRORS
                        MOVE WS-M-MIN-VALUES
                          TO WS-M-MAX-VALUES
                        MOVE ZEROES        TO WS-M-MAX-SEQ-N
                        PERFORM C000-PROCESS-NEXT-PAGE
                        MOVE W9999-MSG-020 TO M-MSG-22I
                    END-IF
               WHEN EIBAID = DFHPF12
                    MOVE CA-CURRENT-PGM TO CA-RETURN-PGM
                    MOVE CA-PREV-TXN    TO W0001-TXN-ID
                    SET DISPLAY-HEADERS TO TRUE
                    SET MAP-1-ACTIVE    TO TRUE
                    SET CA-INQUIRY      TO TRUE
                    MOVE WS-M-F-LN-C (WS-M-INDEX)
                       TO WS-M-MAX-VALUES
                    MOVE ZEROES     TO WS-M-MAX-SEQ-N
                    PERFORM C000-PROCESS-NEXT-PAGE
               WHEN OTHER
                    MOVE -1             TO M-LN-CL
                    SET ERRORS          TO TRUE
                    MOVE W9999-MSG-002  TO M-MSG-22I
           END-EVALUATE.

           EJECT
       A002-PROCESS-MAP-A.

           MOVE 'A002'      TO CA-PARAGRAPH-NBR.

           EVALUATE TRUE
               WHEN EIBAID = DFHENTER
                    PERFORM E100-PROCESS-ENTER-KEY
               WHEN EIBAID = DFHCLEAR
                    PERFORM Y400-RETURN-TO-CICS
               WHEN EIBAID = DFHPF3
                    SET MAP-1-ACTIVE    TO TRUE
                    SET CA-INQUIRY      TO TRUE
                    SET DISPLAY-LINES   TO TRUE
      *BWM*
      *BWM*         IF  INSERT-SUCCESSFUL
                        MOVE WS-M-MIN-VALUES
                          TO WS-M-MAX-VALUES
                        MOVE ZEROES     TO WS-M-MAX-SEQ-N
                        PERFORM C000-PROCESS-NEXT-PAGE
      *BWM*         ELSE
      *BWM*             PERFORM B300-DISPLAY-SCREEN-1
      *BWM*         END-IF
                    SET INSERT-NOT-SUCCESSFUL TO TRUE
               WHEN EIBAID = DFHPF5
                    PERFORM E200-UPDATE-T231LINE-HDR
               WHEN EIBAID = DFHPF6
                    PERFORM E200-UPDATE-T231LINE-HDR
               WHEN EIBAID = DFHPF12
                    SET MAP-1-ACTIVE    TO TRUE
                    SET CA-INQUIRY      TO TRUE
                    SET DISPLAY-LINES   TO TRUE
      *BWM*
      *BWM*         IF  INSERT-SUCCESSFUL
                        MOVE WS-M-MIN-VALUES
                          TO WS-M-MAX-VALUES
                        MOVE ZEROES     TO WS-M-MAX-SEQ-N
                        PERFORM C000-PROCESS-NEXT-PAGE
      *BWM*         ELSE
      *BWM*             PERFORM B300-DISPLAY-SCREEN-1
      *BWM*         END-IF
                    SET INSERT-NOT-SUCCESSFUL TO TRUE
               WHEN OTHER
                    MOVE -1             TO M-LN-CAL
                    SET ERRORS          TO TRUE
                    MOVE W9999-MSG-002  TO M-MSG-22AI
           END-EVALUATE.

           EJECT
       A003-PROCESS-MAP-B.

           MOVE 'A003'      TO CA-PARAGRAPH-NBR.

           EVALUATE TRUE
               WHEN EIBAID = DFHENTER
                    PERFORM F100-PROCESS-ENTER-KEY
               WHEN EIBAID = DFHCLEAR
                    PERFORM Y400-RETURN-TO-CICS
               WHEN EIBAID = DFHPF3
                    SET MAP-1-ACTIVE    TO TRUE
                    SET CA-INQUIRY      TO TRUE
      *BWM*
      *BWM*         IF  INSERT-SUCCESSFUL
                        MOVE WS-M-MIN-VALUES
                          TO WS-M-MAX-VALUES
                        MOVE ZEROES     TO WS-M-MAX-SEQ-N
                        PERFORM C000-PROCESS-NEXT-PAGE
      *BWM*         ELSE
      *BWM*             PERFORM B300-DISPLAY-SCREEN-1
      *BWM*         END-IF
                    SET INSERT-NOT-SUCCESSFUL TO TRUE
               WHEN EIBAID = DFHPF5
                    PERFORM F200-UPDATE-T231LINE-LINE
               WHEN EIBAID = DFHPF6
                    PERFORM F200-UPDATE-T231LINE-LINE
               WHEN EIBAID = DFHPF12
                    SET MAP-1-ACTIVE    TO TRUE
                    SET CA-INQUIRY      TO TRUE
      *BWM*
      *BWM*         IF  INSERT-SUCCESSFUL
                        MOVE WS-M-MIN-VALUES
                          TO WS-M-MAX-VALUES
                        MOVE ZEROES     TO WS-M-MAX-SEQ-N
                        PERFORM C000-PROCESS-NEXT-PAGE
      *BWM*         ELSE
      *BWM*             PERFORM B300-DISPLAY-SCREEN-1
      *BWM*         END-IF
                    SET INSERT-NOT-SUCCESSFUL TO TRUE
               WHEN OTHER
                    MOVE -1             TO M-LN-XBL
                    SET ERRORS          TO TRUE
                    MOVE W9999-MSG-002  TO M-MSG-22BI
           END-EVALUATE.

           EJECT
       A100-INITIALIZATION.

           MOVE 'A100'      TO CA-PARAGRAPH-NBR.

           IF  EIBCALEN NOT EQUAL ZEROES
               MOVE DFHCOMMAREA TO WS-COMMAREA
               IF  CA-CURRENT-PGM = PROGRAM-NAME
                   CONTINUE
               ELSE
                   MOVE CA-CURRENT-PGM TO CA-PREV-PGM
                   MOVE CA-CURRENT-TXN TO CA-PREV-TXN
                   PERFORM A150-SETUP-COMMAREA
               END-IF
           ELSE
               MOVE MAIN-MENU-TXN-ID  TO W0001-TXN-ID
               PERFORM Y600-START-TRANSACTION
           END-IF.

           EJECT
       A150-SETUP-COMMAREA.

           MOVE 'A150'      TO CA-PARAGRAPH-NBR.

           EXEC CICS ASKTIME
                ABSTIME (W0001-ABSTIME)
           END-EXEC.

           EXEC CICS FORMATTIME
                ABSTIME (W0001-ABSTIME)
                TIME    (W0001-HHCMMCSS)
                TIMESEP
                MMDDYY  (W0001-MMSDDSYY)
                DATESEP
                YEAR    (W0001-YYYY)
           END-EXEC.

           MOVE W0001-MMSDDSYY    TO M-DATEI
                                     CA-DATE.
           MOVE W0001-HHCMMCSS    TO M-TIMEI
                                     CA-TIME.

           EJECT
       A200-DISPLAY-SCREEN.

           MOVE 'A200'      TO CA-PARAGRAPH-NBR.

           IF  CA-CURRENT-PGM = PROGRAM-NAME
               PERFORM A210-SAVE-MAP
           ELSE
               INITIALIZE  MAP-SAVE-AREA
               INITIALIZE  M231F09I
               INITIALIZE  M231F9AI
               INITIALIZE  M231F9BI
               MOVE -1             TO M-LN-CL
               SET DISPLAY-HEADERS TO TRUE
               SET MAP-1-ACTIVE    TO TRUE
               MOVE MAP-NAME-1     TO MAP-NAME
               PERFORM C000-PROCESS-NEXT-PAGE
           END-IF.

           EVALUATE TRUE
               WHEN MAP-1-ACTIVE
                    PERFORM A220-SET-SCREEN-1-ATTRIBUTES
                    MOVE MAP-NAME-1 TO MAP-NAME
                    MOVE M231F09I   TO MAP-DATA
               WHEN MAP-A-ACTIVE
                    PERFORM A221-SET-SCREEN-A-ATTRIBUTES
                    MOVE MAP-NAME-A TO MAP-NAME
                    MOVE M231F9AI   TO MAP-DATA
               WHEN MAP-B-ACTIVE
                    PERFORM A222-SET-SCREEN-B-ATTRIBUTES
                    MOVE MAP-NAME-B TO MAP-NAME
                    MOVE M231F9BI   TO MAP-DATA
           END-EVALUATE.

           EXEC CICS HANDLE CONDITION
                MAPFAIL (Z100-MAPFAIL)
                ERROR   (Z200-NO-MAPFAIL)
           END-EXEC.

           EXEC CICS SEND
                MAP    (MAP-NAME)
                MAPSET (SET-NAME)
                FROM   (MAP-DATA)
                ERASE
                CURSOR
           END-EXEC.

           EJECT
       A210-SAVE-MAP.

           MOVE 'A210'      TO CA-PARAGRAPH-NBR.

           EJECT
       A220-SET-SCREEN-1-ATTRIBUTES.

           MOVE 'A220'      TO CA-PARAGRAPH-NBR.

           MOVE ATTR-ALPHA-PROT-BRT-PEN
             TO M-UID-CA
                M-FYPDA
                M-DATEA
                M-TIMEA
                M-MSG-22A.

           MOVE ATTR-ALPHA-PROT-BRT-PEN
             TO M-MODEA.

           MOVE ATTR-ALPHA-UNPROT-MDT
             TO M-LN-CA.

           PERFORM VARYING W0001-X FROM 1 BY 1
             UNTIL W0001-X > W0001-SCREEN-LINE-LIMIT

               MOVE ATTR-ALPHA-UNPROT-MDT
                 TO M-ACT-CA        (W0001-X)

               MOVE ATTR-ALPHA-PROT-MDT
                 TO M-DATA-XA       (W0001-X)

               IF  M-DATA-XI (W0001-X) EQUAL SPACES
                   MOVE ATTR-ALPHA-PROT-MDT
                     TO M-ACT-CA    (W0001-X)
                   MOVE SPACES
                     TO M-ACT-CI (W0001-X)
               ELSE
                   MOVE M-ACT-CI (W0001-X) TO W9998-DATA
                   PERFORM Z998-MOVE-UNDERSCORES
                   MOVE W9998-DATA         TO M-ACT-CI (W0001-X)
               END-IF
           END-PERFORM.

           MOVE M-LN-CI        TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-LN-CI.

           MOVE M-LN-NI        TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-LN-NI.

           MOVE CA-OP-ID       TO M-UID-CI.
           MOVE CA-FYPD        TO M-FYPDI.
           MOVE CA-DATE        TO M-DATEI.
           MOVE CA-TIME        TO M-TIMEI.

           IF  DISPLAY-HEADERS
               MOVE 'HEADERS'  TO M-MODEI
           ELSE
               MOVE 'LINES'    TO M-MODEI
           END-IF.

           EJECT
       A221-SET-SCREEN-A-ATTRIBUTES.

           MOVE 'A221'      TO CA-PARAGRAPH-NBR.

           MOVE ATTR-ALPHA-PROT-BRT-PEN
             TO M-UID-CAA
                M-FYPDAA
                M-DATEAA
                M-TIMEAA
                M-MSG-22AA
                M-MODEAA.

           IF  CA-ENTRY
               MOVE ATTR-ALPHA-UNPROT-MDT
                 TO M-LN-CAA
                    M-RECTYP-CA
                    M-LN-XAA
                    M-CMNT1-XA
                    M-CMNT2-XA
                    M-CMNT3-XA
                    M-CMNT4-XA
               MOVE ' ** ADD **' TO M-MODEAI
           ELSE
               MOVE ATTR-ALPHA-PROT-MDT
                 TO M-LN-CAA
               MOVE ATTR-ALPHA-UNPROT-MDT
                 TO M-RECTYP-CA
                    M-LN-XAA
                    M-CMNT1-XA
                    M-CMNT2-XA
                    M-CMNT3-XA
                    M-CMNT4-XA
               MOVE '  UPDATE  ' TO M-MODEAI
           END-IF.

           MOVE M-LN-CAI       TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-LN-CAI.

           MOVE M-RECTYP-CI    TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-RECTYP-CI.

           MOVE M-LN-XAI       TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-LN-XAI.

           MOVE M-CMNT1-XI     TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-CMNT1-XI.

           MOVE M-CMNT2-XI     TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-CMNT2-XI.

           MOVE M-CMNT3-XI     TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-CMNT3-XI.

           MOVE M-CMNT4-XI     TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-CMNT4-XI.

           MOVE CA-OP-ID       TO M-UID-CAI.
           MOVE CA-FYPD        TO M-FYPDAI.
           MOVE CA-DATE        TO M-DATEAI.
           MOVE CA-TIME        TO M-TIMEAI.

           EJECT
       A222-SET-SCREEN-B-ATTRIBUTES.

           MOVE 'A222'      TO CA-PARAGRAPH-NBR.

           MOVE ATTR-ALPHA-PROT-BRT-PEN
             TO M-UID-CBA
                M-FYPDBA
                M-DATEBA
                M-TIMEBA
                M-MSG-22BA
                M-MODEBA.

           IF  CA-ENTRY
               MOVE ATTR-ALPHA-PROT-MDT
                 TO M-LN-CBA
                    M-LN-NBA
               MOVE ATTR-ALPHA-UNPROT-MDT
                 TO M-LN-XBA
                    M-FMT-CA
                    M-CMNTB-XA
               MOVE ' ** ADD **' TO M-MODEBI
           ELSE
               MOVE ATTR-ALPHA-PROT-MDT
                 TO M-LN-CBA
                    M-LN-NBA
               MOVE ATTR-ALPHA-UNPROT-MDT
                 TO M-LN-XBA
                    M-FMT-CA
                    M-CMNTB-XA
               MOVE '  UPDATE  ' TO M-MODEBI
           END-IF.

           MOVE M-LN-CBI       TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-LN-CBI.

           MOVE M-LN-NBI       TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-LN-NBI.

           MOVE M-FMT-CI       TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-FMT-CI.

           MOVE M-LN-XBI       TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-LN-XBI.

           MOVE M-CMNTB-XI     TO W9998-DATA.
           PERFORM Z998-MOVE-UNDERSCORES.
           MOVE W9998-DATA     TO M-CMNTB-XI.

           MOVE ATTR-ALPHA-UNPROT-MDT
             TO M-FMT-CA.

           PERFORM VARYING W0001-X FROM 1 BY 1
                     UNTIL W0001-X > 2
               MOVE ATTR-ALPHA-UNPROT-MDT
                 TO M-CALC01-CBA (W0001-X)
                    M-CALC02-CBA (W0001-X)
                    M-CALC03-CBA (W0001-X)
                    M-CALC04-CBA (W0001-X)
                    M-CALC05-CBA (W0001-X)
                    M-CALC06-CBA (W0001-X)
                    M-CALC07-CBA (W0001-X)
                    M-CALC08-CBA (W0001-X)
                    M-CALC01-XBA (W0001-X)
                    M-CALC02-XBA (W0001-X)
                    M-CALC03-XBA (W0001-X)
                    M-CALC04-XBA (W0001-X)
                    M-CALC05-XBA (W0001-X)
                    M-CALC06-XBA (W0001-X)
                    M-CALC07-XBA (W0001-X)
                    M-CALC08-XBA (W0001-X)

               MOVE M-CALC01-CBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC01-CBI (W0001-X)

               MOVE M-CALC02-CBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC02-CBI (W0001-X)

               MOVE M-CALC03-CBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC03-CBI (W0001-X)

               MOVE M-CALC04-CBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC04-CBI (W0001-X)

               MOVE M-CALC05-CBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC05-CBI (W0001-X)

               MOVE M-CALC06-CBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC06-CBI (W0001-X)

               MOVE M-CALC07-CBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC07-CBI (W0001-X)

               MOVE M-CALC08-CBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC08-CBI (W0001-X)

               MOVE M-CALC01-XBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC01-XBI (W0001-X)

               MOVE M-CALC02-XBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC02-XBI (W0001-X)

               MOVE M-CALC03-XBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC03-XBI (W0001-X)

               MOVE M-CALC04-XBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC04-XBI (W0001-X)

               MOVE M-CALC05-XBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC05-XBI (W0001-X)

               MOVE M-CALC06-XBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC06-XBI (W0001-X)

               MOVE M-CALC07-XBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC07-XBI (W0001-X)

               MOVE M-CALC08-XBI (W0001-X)  TO W9998-DATA
               PERFORM Z998-MOVE-UNDERSCORES
               MOVE W9998-DATA              TO M-CALC08-XBI (W0001-X)
           END-PERFORM.

      *  ONLY USE LINES 1 AND 2 OF THE CALCULATIONS.  LINES 3 THRU 5
      *  WERE USED IN THE OLD SYSTEM, BUT YOU CAN ONLY HAVE 16 CALCS
      *  PER LINE, WHICH WILL FIT ONTO 2 SCREEN LINES, SO FOR NOW
      *  JUST HIDE THE EXTRA LINES ON THE SCREEN.

           PERFORM VARYING W0001-X FROM 3 BY 1
                     UNTIL W0001-X > 5
               MOVE ATTR-ALPHA-PROT-DRK
                 TO M-CALC01-CBA (W0001-X)
                    M-CALC02-CBA (W0001-X)
                    M-CALC03-CBA (W0001-X)
                    M-CALC04-CBA (W0001-X)
                    M-CALC05-CBA (W0001-X)
                    M-CALC06-CBA (W0001-X)
                    M-CALC07-CBA (W0001-X)
                    M-CALC08-CBA (W0001-X)
                    M-CALC01-XBA (W0001-X)
                    M-CALC02-XBA (W0001-X)
                    M-CALC03-XBA (W0001-X)
                    M-CALC04-XBA (W0001-X)
                    M-CALC05-XBA (W0001-X)
                    M-CALC06-XBA (W0001-X)
                    M-CALC07-XBA (W0001-X)
                    M-CALC08-XBA (W0001-X)

           END-PERFORM.

           MOVE CA-OP-ID       TO M-UID-CBI.
           MOVE CA-FYPD        TO M-FYPDBI.
           MOVE CA-DATE        TO M-DATEBI.
           MOVE CA-TIME        TO M-TIMEBI.

           EJECT
       A300-ACCEPT-SCREEN.

           MOVE 'A300'      TO CA-PARAGRAPH-NBR.

           EVALUATE TRUE
               WHEN MAP-1-ACTIVE
                    MOVE MAP-NAME-1 TO MAP-NAME
               WHEN MAP-A-ACTIVE
                    MOVE MAP-NAME-A TO MAP-NAME
               WHEN MAP-B-ACTIVE
                    MOVE MAP-NAME-B TO MAP-NAME
           END-EVALUATE.

           EXEC CICS IGNORE CONDITION
                MAPFAIL
           END-EXEC.

           EXEC CICS HANDLE CONDITION
                ERROR (Z200-NO-MAPFAIL)
           END-EXEC.

           EXEC CICS RECEIVE
                MAP    (MAP-NAME)
                MAPSET (SET-NAME)
                INTO   (MAP-DATA)
           END-EXEC.

           EVALUATE TRUE
               WHEN MAP-1-ACTIVE
                    MOVE MAP-DATA TO M231F09I
                    PERFORM A310-PROCESS-MAP-1-FIELDS
               WHEN MAP-A-ACTIVE
                    MOVE MAP-DATA TO M231F9AI
                    PERFORM A311-PROCESS-MAP-A-FIELDS
               WHEN MAP-B-ACTIVE
                    MOVE MAP-DATA TO M231F9BI
                    PERFORM A312-PROCESS-MAP-B-FIELDS
           END-EVALUATE.

           EJECT
       A310-PROCESS-MAP-1-FIELDS.

           MOVE 'A310'      TO CA-PARAGRAPH-NBR.

           INSPECT M-LN-CI    REPLACING ALL '_' BY ' '.
           INSPECT M-LN-NI    REPLACING ALL '_' BY ' '.

           INSPECT M-LN-CI    REPLACING ALL LOW-VALUES BY ' '.
           INSPECT M-LN-NI    REPLACING ALL LOW-VALUES BY ' '.

           PERFORM VARYING W0001-X FROM 1 BY 1
             UNTIL W0001-X > W0001-SCREEN-LINE-LIMIT
                   INSPECT M-ACT-CI (W0001-X) REPLACING ALL '_' BY ' '
                   INSPECT M-ACT-CI (W0001-X)
                       REPLACING ALL LOW-VALUES BY ' '
           END-PERFORM.

           EJECT
       A311-PROCESS-MAP-A-FIELDS.

           MOVE 'A311'      TO CA-PARAGRAPH-NBR.

           INSPECT M-LN-CAI     REPLACING ALL '_' BY ' '.
           INSPECT M-RECTYP-CI  REPLACING ALL '_' BY ' '.
           INSPECT M-LN-XAI     REPLACING ALL '_' BY ' '.
           INSPECT M-CMNT1-XI   REPLACING ALL '_' BY ' '.
           INSPECT M-CMNT2-XI   REPLACING ALL '_' BY ' '.
           INSPECT M-CMNT3-XI   REPLACING ALL '_' BY ' '.
           INSPECT M-CMNT4-XI   REPLACING ALL '_' BY ' '.

           INSPECT M-LN-CAI     REPLACING ALL LOW-VALUES BY ' '.
           INSPECT M-RECTYP-CI  REPLACING ALL LOW-VALUES BY ' '.
           INSPECT M-LN-XAI     REPLACING ALL LOW-VALUES BY ' '.
           INSPECT M-CMNT1-XI   REPLACING ALL LOW-VALUES BY ' '.
           INSPECT M-CMNT2-XI   REPLACING ALL LOW-VALUES BY ' '.
           INSPECT M-CMNT3-XI   REPLACING ALL LOW-VALUES BY ' '.
           INSPECT M-CMNT4-XI   REPLACING ALL LOW-VALUES BY ' '.

           EJECT
       A312-PROCESS-MAP-B-FIELDS.

           MOVE 'A312'      TO CA-PARAGRAPH-NBR.

           INSPECT M-LN-CBI      REPLACING ALL '_' BY ' '.
           INSPECT M-LN-NBI      REPLACING ALL '_' BY ' '.
           INSPECT M-FMT-CI      REPLACING ALL '_' BY ' '.
           INSPECT M-LN-XBI      REPLACING ALL '_' BY ' '.
           INSPECT M-CMNTB-XI    REPLACING ALL '_' BY ' '.

           PERFORM VARYING W0001-X FROM 1 BY 1
                     UNTIL W0001-X > 5
               INSPECT M-CALC01-CBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC02-CBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC03-CBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC04-CBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC05-CBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC06-CBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC07-CBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC08-CBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC01-XBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC02-XBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC03-XBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC04-XBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC05-XBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC06-XBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC07-XBI (W0001-X)
                   REPLACING ALL '_' BY ' '
               INSPECT M-CALC08-XBI (W0001-X)
                   REPLACING ALL '_' BY ' '

               INSPECT M-CALC01-CBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC02-CBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC03-CBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC04-CBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC05-CBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC06-CBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC07-CBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC08-CBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC01-XBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC02-XBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC03-XBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC04-XBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC05-XBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC06-XBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC07-XBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
               INSPECT M-CALC08-XBI (W0001-X)
                   REPLACING ALL LOW-VALUES BY ' '
           END-PERFORM.

           INSPECT M-LN-CBI      REPLACING ALL LOW-VALUES BY ' '.
           INSPECT M-LN-NBI      REPLACING ALL LOW-VALUES BY ' '.
           INSPECT M-FMT-CI      REPLACING ALL LOW-VALUES BY ' '.
           INSPECT M-LN-XBI      REPLACING ALL LOW-VALUES BY ' '.
           INSPECT M-CMNTB-XI    REPLACING ALL LOW-VALUES BY ' '.

           EJECT
       B000-PROCESS-ENTER-KEY.

           MOVE 'B000'      TO CA-PARAGRAPH-NBR.

           SET W0001-NO-LINES-SELECTED TO TRUE.

           IF  M-LN-CI > SPACES
               PERFORM B100-VALIDATE-KEY
           ELSE
               PERFORM B200-CHECK-FOR-SELECTION
               IF  NO-ERRORS
                   IF  W0001-LINES-SELECTED
                       MOVE SPACES  TO M-ACT-CI  (WS-M-INDEX)
                       CONTINUE
                   ELSE
                       MOVE W9999-MSG-001  TO M-MSG-22I
                       SET ERRORS          TO TRUE
                       MOVE -1             TO M-LN-CL
                   END-IF
               END-IF
           END-IF.

           EJECT
       B100-VALIDATE-KEY.

           MOVE 'B100'      TO CA-PARAGRAPH-NBR.

           IF  M-LN-CI > SPACES
               MOVE M-LN-CI      TO F-LN-C        IN DCLT231LINE
                                    WS-M-MAX-LN-C
               MOVE M-LN-NI      TO F-LN-N        IN DCLT231LINE
                                    WS-M-MAX-LN-N
               MOVE ZEROES       TO A-SEQ-N       IN DCLT231LINE
                                    WS-M-MAX-SEQ-N
               MOVE ' '          TO DB-RECTYP-C   IN DCLT231LINE
                                    WS-M-MAX-RECTYP-C

               PERFORM C000-PROCESS-NEXT-PAGE

               MOVE SPACES TO M-LN-CI
               MOVE SPACES TO M-LN-NI
           END-IF.

           EJECT
       B200-CHECK-FOR-SELECTION.

           MOVE 'B200'      TO CA-PARAGRAPH-NBR.

           PERFORM VARYING W0001-X FROM 1 BY 1
             UNTIL W0001-X > W0001-SCREEN-LINE-LIMIT
                OR W0001-LINES-SELECTED
                   IF  M-ACT-CI (W0001-X) > ' '
                       SET W0001-LINES-SELECTED  TO TRUE
                       MOVE W0001-X              TO WS-M-INDEX
                       EVALUATE TRUE
                           WHEN WS-M-F-LN-N (W0001-X) = '   '
                             IF  DISPLAY-HEADERS
                                 SET DISPLAY-LINES   TO TRUE
                                 MOVE WS-M-F-LN-C (WS-M-INDEX)
                                   TO WS-M-MAX-VALUES
                                 MOVE ZEROES TO WS-M-MAX-SEQ-N
                                 PERFORM C000-PROCESS-NEXT-PAGE
                             ELSE
                                 SET DISPLAY-HEADERS TO TRUE
                                 SET MAP-A-ACTIVE TO TRUE
                                 PERFORM B400-DISPLAY-SCREEN-A
                             END-IF
                           WHEN OTHER
                                SET MAP-B-ACTIVE TO TRUE
                                PERFORM B500-DISPLAY-SCREEN-B
                       END-EVALUATE
                   END-IF
           END-PERFORM.

           EJECT
       B300-DISPLAY-SCREEN-1.

           MOVE 'B300'      TO CA-PARAGRAPH-NBR.

           INITIALIZE  M231F09I.

           PERFORM VARYING W0001-IX FROM 1 BY 1
             UNTIL W0001-IX > W0001-SCREEN-LINE-LIMIT

               INITIALIZE W0002-T231LINE

               EVALUATE TRUE
                   WHEN WS-M-DB-RECTYP-C (W0001-IX) = '/'
                        PERFORM B310-BUILD-COMMENT
                   WHEN WS-M-DB-RECTYP-C (W0001-IX) = 'P'
                        PERFORM B320-BUILD-REC-TYPE-1
                   WHEN WS-M-DB-RECTYP-C (W0001-IX) = 'R'
                        PERFORM B320-BUILD-REC-TYPE-1
                   WHEN WS-M-DB-RECTYP-C (W0001-IX) = 'O'
                        PERFORM B320-BUILD-REC-TYPE-1
                   WHEN OTHER
                        PERFORM B330-BUILD-REC-TYPE-2
               END-EVALUATE

               MOVE W0002-T231LINE
                 TO M-DATA-XI         (W0001-IX)
           END-PERFORM.

           IF  NO-ERRORS
               MOVE W9999-MSG-001  TO M-MSG-22I
               MOVE -1             TO M-LN-CL
           END-IF.

           EJECT
       B310-BUILD-COMMENT.

           MOVE 'B320' TO CA-PARAGRAPH-NBR.

           MOVE '/'
             TO W0002-T231LINE-COMMENT-IND.
           MOVE WS-M-F-LN-X       (W0001-IX)
             TO W0002-T231LINE-COMMENT.

           EJECT
       B320-BUILD-REC-TYPE-1.

           MOVE 'B320' TO CA-PARAGRAPH-NBR.

           MOVE WS-M-F-LN-C       (W0001-IX)
             TO W0002-F-LN-C.
           MOVE WS-M-DB-RECTYP-C  (W0001-IX)
             TO W0002-LINE-RECTYP-C.
           MOVE WS-M-F-LN-X       (W0001-IX)
             TO W0002-F-LINEID-X01.

           EJECT
       B330-BUILD-REC-TYPE-2.

           MOVE 'B330' TO CA-PARAGRAPH-NBR.

           MOVE WS-M-F-LN-C       (W0001-IX)
             TO W0002-F-LN-C.
           MOVE WS-M-F-LN-N       (W0001-IX)
             TO W0002-F-LN-N.
           MOVE WS-M-F-FMTTYP-C   (W0001-IX)
             TO W0002-F-FMTTYP-C.
           MOVE WS-M-F-LN-X       (W0001-IX)
             TO W0002-F-LN-DESC.
           MOVE WS-M-F-CALC01-C (W0001-IX)
             TO W0002-F-CALC01-CLN.
           MOVE WS-M-F-CALC02-C (W0001-IX)
             TO W0002-F-CALC02-CLN.
           MOVE WS-M-F-CALC03-C (W0001-IX)
             TO W0002-F-CALC03-CLN.
           MOVE WS-M-F-CALC04-C (W0001-IX)
             TO W0002-F-CALC04-CLN.
           MOVE WS-M-F-CALC05-C (W0001-IX)
             TO W0002-F-CALC05-CLN.
           MOVE WS-M-F-CALC06-C (W0001-IX)
             TO W0002-F-CALC06-CLN.
           MOVE WS-M-F-CALC07-C (W0001-IX)
             TO W0002-F-CALC07-CLN.
           MOVE WS-M-F-CALC08-C (W0001-IX)
             TO W0002-F-CALC08-CLN.
           MOVE WS-M-F-CALC01-X (W0001-IX)
             TO W0002-F-CALC01-XLN.
           MOVE WS-M-F-CALC02-X (W0001-IX)
             TO W0002-F-CALC02-XLN.
           MOVE WS-M-F-CALC03-X (W0001-IX)
             TO W0002-F-CALC03-XLN.
           MOVE WS-M-F-CALC04-X (W0001-IX)
             TO W0002-F-CALC04-XLN.
           MOVE WS-M-F-CALC05-X (W0001-IX)
             TO W0002-F-CALC05-XLN.
           MOVE WS-M-F-CALC06-X (W0001-IX)
             TO W0002-F-CALC06-XLN.
           MOVE WS-M-F-CALC07-X (W0001-IX)
             TO W0002-F-CALC07-XLN.
           MOVE WS-M-F-CALC08-X (W0001-IX)
             TO W0002-F-CALC08-XLN.

           EJECT
       B400-DISPLAY-SCREEN-A.

           MOVE 'B400'      TO CA-PARAGRAPH-NBR.

           INITIALIZE  M231F9AI.

           MOVE WS-M-F-LN-C        (WS-M-INDEX)
             TO M-LN-CAI
                F-LN-C             IN DCLT231LINE.
           MOVE SPACES
             TO F-LN-N             IN DCLT231LINE.

           EXEC SQL
                OPEN CSR_8
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           MOVE +1 TO W0001-IX.

           PERFORM UNTIL SQLCODE NOT EQUAL ZERO
                      OR ERRORS
               EXEC SQL
                    FETCH CSR_8
                     INTO :DCLT231LINE.F-LN-C
                        , :DCLT231LINE.F-LN-N
                        , :DCLT231LINE.A-SEQ-N
                        , :DCLT231LINE.DB-RECTYP-C
                        , :DCLT231LINE.F-LN-X
                        , :DCLT231LINE.F-FMTTYP-C
                        , :DCLT231LINE.F-CALC01-C
                        , :DCLT231LINE.F-CALC02-C
                        , :DCLT231LINE.F-CALC03-C
                        , :DCLT231LINE.F-CALC04-C
                        , :DCLT231LINE.F-CALC05-C
                        , :DCLT231LINE.F-CALC06-C
                        , :DCLT231LINE.F-CALC07-C
                        , :DCLT231LINE.F-CALC08-C
                        , :DCLT231LINE.F-CALC01-X
                        , :DCLT231LINE.F-CALC02-X
                        , :DCLT231LINE.F-CALC03-X
                        , :DCLT231LINE.F-CALC04-X
                        , :DCLT231LINE.F-CALC05-X
                        , :DCLT231LINE.F-CALC06-X
                        , :DCLT231LINE.F-CALC07-X
                        , :DCLT231LINE.F-CALC08-X
               END-EXEC

               PERFORM Z900-DB2-CHECK

               IF  DB2-NORMAL
                   EVALUATE TRUE
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = '/'
                            PERFORM B410-BUILD-COMMENT
                       WHEN OTHER
                            PERFORM B420-BUILD-HEADER
                   END-EVALUATE
               END-IF
           END-PERFORM.

           EXEC SQL
               CLOSE CSR_8
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           IF  NO-ERRORS
               MOVE W9999-MSG-019  TO M-MSG-22AI
               MOVE -1             TO M-LN-CAL
           END-IF.

           EJECT
       B410-BUILD-COMMENT.

           MOVE 'B410'      TO CA-PARAGRAPH-NBR.

           IF  W0001-IX = +1
               MOVE F-LN-X       IN DCLT231LINE
                 TO M-CMNT1-XI
           END-IF.

           IF  W0001-IX = +2
               MOVE F-LN-X       IN DCLT231LINE
                 TO M-CMNT2-XI
           END-IF.

           IF  W0001-IX = +3
               MOVE F-LN-X       IN DCLT231LINE
                 TO M-CMNT3-XI
           END-IF.

           IF  W0001-IX = +4
               MOVE F-LN-X       IN DCLT231LINE
                 TO M-CMNT4-XI
           END-IF.

           ADD +1 TO W0001-IX.

           EJECT
       B420-BUILD-HEADER.

           MOVE 'B420'      TO CA-PARAGRAPH-NBR.

           MOVE DB-RECTYP-C  IN DCLT231LINE
             TO M-RECTYP-CI
           MOVE F-LN-X       IN DCLT231LINE
             TO M-LN-XAI.

           EJECT
       B500-DISPLAY-SCREEN-B.

           MOVE 'B500'      TO CA-PARAGRAPH-NBR.

           INITIALIZE  M231F9BI.

           MOVE WS-M-F-LN-C        (WS-M-INDEX)
             TO M-LN-CBI
                F-LN-C             IN DCLT231LINE.
           MOVE WS-M-F-LN-N        (WS-M-INDEX)
             TO M-LN-NBI
                F-LN-N             IN DCLT231LINE.

           EXEC SQL
                OPEN CSR_8
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           MOVE +1 TO W0001-IX.

           PERFORM UNTIL SQLCODE NOT EQUAL ZERO
                      OR W0001-IX > +5
                      OR ERRORS
               EXEC SQL
                    FETCH CSR_8
                     INTO :DCLT231LINE.F-LN-C
                        , :DCLT231LINE.F-LN-N
                        , :DCLT231LINE.A-SEQ-N
                        , :DCLT231LINE.DB-RECTYP-C
                        , :DCLT231LINE.F-LN-X
                        , :DCLT231LINE.F-FMTTYP-C
                        , :DCLT231LINE.F-CALC01-C
                        , :DCLT231LINE.F-CALC02-C
                        , :DCLT231LINE.F-CALC03-C
                        , :DCLT231LINE.F-CALC04-C
                        , :DCLT231LINE.F-CALC05-C
                        , :DCLT231LINE.F-CALC06-C
                        , :DCLT231LINE.F-CALC07-C
                        , :DCLT231LINE.F-CALC08-C
                        , :DCLT231LINE.F-CALC01-X
                        , :DCLT231LINE.F-CALC02-X
                        , :DCLT231LINE.F-CALC03-X
                        , :DCLT231LINE.F-CALC04-X
                        , :DCLT231LINE.F-CALC05-X
                        , :DCLT231LINE.F-CALC06-X
                        , :DCLT231LINE.F-CALC07-X
                        , :DCLT231LINE.F-CALC08-X
               END-EXEC

               PERFORM Z900-DB2-CHECK

               IF  DB2-NORMAL
                   EVALUATE TRUE
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = '/'
                            PERFORM B510-BUILD-COMMENT
                       WHEN OTHER
                            PERFORM B520-BUILD-LINE
                   END-EVALUATE
               END-IF
           END-PERFORM.

           EXEC SQL
               CLOSE CSR_8
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           IF  NO-ERRORS
               MOVE W9999-MSG-019  TO M-MSG-22BI
               MOVE -1             TO M-LN-XBL
           END-IF.

           EJECT
       B510-BUILD-COMMENT.

           MOVE 'B510'      TO CA-PARAGRAPH-NBR.

           MOVE F-LN-X      IN DCLT231LINE
             TO M-CMNTB-XI.

           EJECT
       B520-BUILD-LINE.

           MOVE 'B520'      TO CA-PARAGRAPH-NBR.

           IF  W0001-IX = +1
               MOVE F-LN-X        IN DCLT231LINE
                 TO M-LN-XBI
               MOVE F-FMTTYP-C    IN DCLT231LINE
                 TO M-FMT-CI
           END-IF.

           MOVE F-CALC01-C         IN DCLT231LINE
             TO M-CALC01-CBI (W0001-IX).
           MOVE F-CALC02-C         IN DCLT231LINE
             TO M-CALC02-CBI (W0001-IX).
           MOVE F-CALC03-C         IN DCLT231LINE
             TO M-CALC03-CBI (W0001-IX).
           MOVE F-CALC04-C         IN DCLT231LINE
             TO M-CALC04-CBI (W0001-IX).
           MOVE F-CALC05-C         IN DCLT231LINE
             TO M-CALC05-CBI (W0001-IX).
           MOVE F-CALC06-C         IN DCLT231LINE
             TO M-CALC06-CBI (W0001-IX).
           MOVE F-CALC07-C         IN DCLT231LINE
             TO M-CALC07-CBI (W0001-IX).
           MOVE F-CALC08-C         IN DCLT231LINE
             TO M-CALC08-CBI (W0001-IX).
           MOVE F-CALC01-X         IN DCLT231LINE
             TO M-CALC01-XBI (W0001-I ).
           MOVE F-CALC02-X         IN DCLT231LINE
             TO M-CALC02-XBI (W0001-IX).
           MOVE F-CALC03-X         IN DCLT231LINE
             TO M-CALC03-XBI (W0001-IX).
           MOVE F-CALC04-X         IN DCLT231LINE
             TO M-CALC04-XBI (W0001-IX).
           MOVE F-CALC05-X         IN DCLT231LINE
             TO M-CALC05-XBI (W0001-IX).
           MOVE F-CALC06-X         IN DCLT231LINE
             TO M-CALC06-XBI (W0001-IX).
           MOVE F-CALC07-X         IN DCLT231LINE
             TO M-CALC07-XBI (W0001-IX).
           MOVE F-CALC08-X         IN DCLT231LINE
             TO M-CALC08-XBI (W0001-IX).

           ADD +1 TO W0001-IX.

           EJECT
       B800-CHECK-FOR-SELECTION.

           MOVE 'B800'      TO CA-PARAGRAPH-NBR.

           PERFORM VARYING W0001-X FROM 1 BY 1
             UNTIL W0001-X > W0001-SCREEN-LINE-LIMIT
                OR W0001-LINES-SELECTED
                   IF  M-ACT-CI (W0001-X) > ' '
                       SET W0001-LINES-SELECTED  TO TRUE
                       MOVE W0001-X              TO WS-M-INDEX
                       MOVE WS-M-F-LN-C          (WS-M-INDEX)
                         TO F-LN-C               IN DCLT231LINE
                            M-LN-CBI
                       MOVE WS-M-F-LN-N          (WS-M-INDEX)
                         TO F-LN-N               IN DCLT231LINE
                            M-LN-NBI
                            W0001-HOLD-OLD-LN-N
                            W0001-SCRN-B-NEW-LN-N
                   END-IF
           END-PERFORM.

           IF  W0001-LINES-SELECTED
               CONTINUE
           ELSE
               IF  M-LN-CI > ' '
               AND M-LN-NI > ' '
                   SET W0001-LINES-SELECTED  TO TRUE
                   MOVE M-LN-CI
                     TO F-LN-C               IN DCLT231LINE
                        M-LN-CBI
                   MOVE M-LN-NI
                     TO F-LN-N               IN DCLT231LINE
                        M-LN-NBI
                        W0001-HOLD-OLD-LN-N
                        W0001-SCRN-B-NEW-LN-N
               END-IF
           END-IF.

           EJECT
       C000-PROCESS-NEXT-PAGE.

           MOVE 'C000'      TO CA-PARAGRAPH-NBR.

           IF  NO-ERRORS
               IF  DISPLAY-LINES
                   PERFORM C200-GET-T231LINE-LINES
               ELSE
                   PERFORM C500-GET-T231LINE-HDRS
               END-IF

               IF  W0001-IX > 1 AND <= W0001-SCREEN-LINE-LIMIT
                   PERFORM UNTIL W0001-IX > W0001-SCREEN-LINE-LIMIT
                       PERFORM C400-MOVE-BLANKS-TO-SCREEN
                       ADD +1 TO W0001-IX
                   END-PERFORM
               ELSE
                   IF  W0001-IX = 1 AND EIBAID = DFHENTER
                       PERFORM VARYING W0001-IX FROM 1 BY 1
                         UNTIL W0001-IX > W0001-SCREEN-LINE-LIMIT
                           PERFORM C400-MOVE-BLANKS-TO-SCREEN
                       END-PERFORM
                   END-IF
               END-IF
           ELSE
               PERFORM VARYING W0001-IX FROM 1 BY 1
                 UNTIL W0001-IX > W0001-SCREEN-LINE-LIMIT
                   PERFORM C400-MOVE-BLANKS-TO-SCREEN
               END-PERFORM
           END-IF.

           EJECT
       C200-GET-T231LINE-LINES.

           MOVE 'C200'      TO CA-PARAGRAPH-NBR.

           MOVE WS-M-MAX-LN-C     TO F-LN-C       IN DCLT231LINE.
           MOVE WS-M-MAX-RECTYP-C TO DB-RECTYP-C  IN DCLT231LINE.
           MOVE WS-M-MAX-LN-N     TO F-LN-N       IN DCLT231LINE.
           MOVE WS-M-MAX-SEQ-N    TO A-SEQ-N      IN DCLT231LINE.

           EXEC SQL
                OPEN CSR_1
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           MOVE +1 TO W0001-IX.

           PERFORM UNTIL SQLCODE NOT EQUAL ZERO
                      OR W0001-IX > W0001-SCREEN-LINE-LIMIT
               EXEC SQL
                    FETCH CSR_1
                     INTO :DCLT231LINE.F-LN-C
                        , :DCLT231LINE.F-LN-N
                        , :DCLT231LINE.A-SEQ-N
                        , :DCLT231LINE.DB-RECTYP-C
                        , :DCLT231LINE.F-LN-X
                        , :DCLT231LINE.F-FMTTYP-C
                        , :DCLT231LINE.F-CALC01-C
                        , :DCLT231LINE.F-CALC02-C
                        , :DCLT231LINE.F-CALC03-C
                        , :DCLT231LINE.F-CALC04-C
                        , :DCLT231LINE.F-CALC05-C
                        , :DCLT231LINE.F-CALC06-C
                        , :DCLT231LINE.F-CALC07-C
                        , :DCLT231LINE.F-CALC08-C
                        , :DCLT231LINE.F-CALC01-X
                        , :DCLT231LINE.F-CALC02-X
                        , :DCLT231LINE.F-CALC03-X
                        , :DCLT231LINE.F-CALC04-X
                        , :DCLT231LINE.F-CALC05-X
                        , :DCLT231LINE.F-CALC06-X
                        , :DCLT231LINE.F-CALC07-X
                        , :DCLT231LINE.F-CALC08-X
               END-EXEC

               PERFORM Z900-DB2-CHECK

               IF  DB2-NORMAL
                   IF  W0001-IX = 1
                       MOVE F-LN-C       IN DCLT231LINE
                         TO WS-M-MIN-LN-C
                       MOVE DB-RECTYP-C  IN DCLT231LINE
                         TO WS-M-MIN-RECTYP-C
                       MOVE F-LN-N       IN DCLT231LINE
                         TO WS-M-MIN-LN-N
                       MOVE A-SEQ-N      IN DCLT231LINE
                         TO WS-M-MIN-SEQ-N
                   END-IF

                   PERFORM C210-MOVE-DB-TO-MAP-SAVE

                   INITIALIZE W0002-T231LINE

                   EVALUATE TRUE
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = '/'
                            PERFORM C220-BUILD-COMMENT
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = 'P'
                            PERFORM C230-BUILD-REC-TYPE-1
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = 'R'
                            PERFORM C230-BUILD-REC-TYPE-1
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = 'O'
                            PERFORM C230-BUILD-REC-TYPE-1
                       WHEN OTHER
                            PERFORM C240-BUILD-REC-TYPE-2
                   END-EVALUATE

                   MOVE W0002-T231LINE
                     TO M-DATA-XI         (W0001-IX)

                   ADD +1 TO W0001-IX
               END-IF
           END-PERFORM.

           MOVE F-LN-C       IN DCLT231LINE
             TO WS-M-MAX-LN-C.
           MOVE DB-RECTYP-C  IN DCLT231LINE
             TO WS-M-MAX-RECTYP-C.
           MOVE F-LN-N       IN DCLT231LINE
             TO WS-M-MAX-LN-N.
           MOVE A-SEQ-N      IN DCLT231LINE
             TO WS-M-MAX-SEQ-N.

           IF  DB2-END-OF-FILE
               MOVE W9999-MSG-004  TO M-MSG-22I
               SET ERRORS          TO TRUE
               MOVE -1             TO M-LN-CL
           END-IF.

           EXEC SQL
               CLOSE CSR_1
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           IF  NO-ERRORS
               MOVE W9999-MSG-001  TO M-MSG-22I
               MOVE -1             TO M-LN-CL
           END-IF.

           EJECT
       C210-MOVE-DB-TO-MAP-SAVE.

           MOVE 'C210' TO CA-PARAGRAPH-NBR.

           MOVE F-LN-C            IN DCLT231LINE
             TO WS-M-F-LN-C       (W0001-IX).
           MOVE F-LN-N            IN DCLT231LINE
             TO WS-M-F-LN-N       (W0001-IX).
           MOVE A-SEQ-N           IN DCLT231LINE
             TO WS-M-A-SEQ-N      (W0001-IX).

           MOVE DB-RECTYP-C       IN DCLT231LINE
             TO WS-M-DB-RECTYP-C  (W0001-IX).
           MOVE F-FMTTYP-C        IN DCLT231LINE
             TO WS-M-F-FMTTYP-C   (W0001-IX).
           MOVE F-LN-X            IN DCLT231LINE
             TO WS-M-F-LN-X       (W0001-IX).

           MOVE F-CALC01-C        IN DCLT231LINE
             TO WS-M-F-CALC01-C (W0001-IX).
           MOVE F-CALC02-C        IN DCLT231LINE
             TO WS-M-F-CALC02-C (W0001-IX).
           MOVE F-CALC03-C        IN DCLT231LINE
             TO WS-M-F-CALC03-C (W0001-IX).
           MOVE F-CALC04-C        IN DCLT231LINE
             TO WS-M-F-CALC04-C (W0001-IX).
           MOVE F-CALC05-C        IN DCLT231LINE
             TO WS-M-F-CALC05-C (W0001-IX).
           MOVE F-CALC06-C        IN DCLT231LINE
             TO WS-M-F-CALC06-C (W0001-IX).
           MOVE F-CALC07-C        IN DCLT231LINE
             TO WS-M-F-CALC07-C (W0001-IX).
           MOVE F-CALC08-C        IN DCLT231LINE
             TO WS-M-F-CALC08-C (W0001-IX).
           MOVE F-CALC01-X        IN DCLT231LINE
             TO WS-M-F-CALC01-X (W0001-IX).
           MOVE F-CALC02-X        IN DCLT231LINE
             TO WS-M-F-CALC02-X (W0001-IX).
           MOVE F-CALC03-X        IN DCLT231LINE
             TO WS-M-F-CALC03-X (W0001-IX).
           MOVE F-CALC04-X        IN DCLT231LINE
             TO WS-M-F-CALC04-X (W0001-IX).
           MOVE F-CALC05-X        IN DCLT231LINE
             TO WS-M-F-CALC05-X (W0001-IX).
           MOVE F-CALC06-X        IN DCLT231LINE
             TO WS-M-F-CALC06-X (W0001-IX).
           MOVE F-CALC07-X        IN DCLT231LINE
             TO WS-M-F-CALC07-X (W0001-IX).
           MOVE F-CALC08-X        IN DCLT231LINE
             TO WS-M-F-CALC08-X (W0001-IX).

           EJECT
       C220-BUILD-COMMENT.

           MOVE 'C220' TO CA-PARAGRAPH-NBR.

           MOVE '/'
             TO W0002-T231LINE-COMMENT-IND.
           MOVE F-LN-X            IN DCLT231LINE
             TO W0002-T231LINE-COMMENT.

           EJECT
       C230-BUILD-REC-TYPE-1.

           MOVE 'C230' TO CA-PARAGRAPH-NBR.

           MOVE F-LN-C            IN DCLT231LINE
             TO W0002-F-LN-C.
           MOVE DB-RECTYP-C       IN DCLT231LINE
             TO W0002-LINE-RECTYP-C.
           MOVE F-LN-X            IN DCLT231LINE
             TO W0002-F-LINEID-X01.

           EJECT
       C240-BUILD-REC-TYPE-2.

           MOVE 'C240' TO CA-PARAGRAPH-NBR.

           MOVE F-LN-C            IN DCLT231LINE
             TO W0002-F-LN-C.
           MOVE F-LN-N            IN DCLT231LINE
             TO W0002-F-LN-N.
           MOVE F-LN-X            IN DCLT231LINE
             TO W0002-F-LN-DESC.

           MOVE F-FMTTYP-C        IN DCLT231LINE
             TO W0002-F-FMTTYP-C.
           MOVE F-CALC01-C        IN DCLT231LINE
             TO W0002-F-CALC01-CLN.
           MOVE F-CALC02-C        IN DCLT231LINE
             TO W0002-F-CALC02-CLN.
           MOVE F-CALC03-C        IN DCLT231LINE
             TO W0002-F-CALC03-CLN.
           MOVE F-CALC04-C        IN DCLT231LINE
             TO W0002-F-CALC04-CLN.
           MOVE F-CALC05-C        IN DCLT231LINE
             TO W0002-F-CALC05-CLN.
           MOVE F-CALC06-C        IN DCLT231LINE
             TO W0002-F-CALC06-CLN.
           MOVE F-CALC07-C        IN DCLT231LINE
             TO W0002-F-CALC07-CLN.
           MOVE F-CALC08-C        IN DCLT231LINE
             TO W0002-F-CALC08-CLN.
           MOVE F-CALC01-X        IN DCLT231LINE
             TO W0002-F-CALC01-XLN.
           MOVE F-CALC02-X        IN DCLT231LINE
             TO W0002-F-CALC02-XLN.
           MOVE F-CALC03-X        IN DCLT231LINE
             TO W0002-F-CALC03-XLN.
           MOVE F-CALC04-X        IN DCLT231LINE
             TO W0002-F-CALC04-XLN.
           MOVE F-CALC05-X        IN DCLT231LINE
             TO W0002-F-CALC05-XLN.
           MOVE F-CALC06-X        IN DCLT231LINE
             TO W0002-F-CALC06-XLN.
           MOVE F-CALC07-X        IN DCLT231LINE
             TO W0002-F-CALC07-XLN.
           MOVE F-CALC08-X        IN DCLT231LINE
             TO W0002-F-CALC08-XLN.

           EJECT
       C400-MOVE-BLANKS-TO-SCREEN.

           MOVE 'C400'      TO CA-PARAGRAPH-NBR.

           MOVE ZEROES TO WS-M-A-SEQ-N   (W0001-IX).

           MOVE SPACES TO M-ACT-CI       (W0001-IX)
                          M-DATA-XI      (W0001-IX)
                          WS-M-F-LN-C    (W0001-IX)
                          WS-M-F-LN-N    (W0001-IX)
                          WS-M-DB-RECTYP-C (W0001-IX)
                          WS-M-F-LN-X     (W0001-IX)
                          WS-M-F-FMTTYP-C (W0001-IX)
                          WS-M-F-CALC01-C (W0001-IX)
                          WS-M-F-CALC02-C (W0001-IX)
                          WS-M-F-CALC03-C (W0001-IX)
                          WS-M-F-CALC04-C (W0001-IX)
                          WS-M-F-CALC05-C (W0001-IX)
                          WS-M-F-CALC06-C (W0001-IX)
                          WS-M-F-CALC07-C (W0001-IX)
                          WS-M-F-CALC08-C (W0001-IX)
                          WS-M-F-CALC01-X (W0001-IX)
                          WS-M-F-CALC02-X (W0001-IX)
                          WS-M-F-CALC03-X (W0001-IX)
                          WS-M-F-CALC04-X (W0001-IX)
                          WS-M-F-CALC05-X (W0001-IX)
                          WS-M-F-CALC06-X (W0001-IX)
                          WS-M-F-CALC07-X (W0001-IX)
                          WS-M-F-CALC08-X (W0001-IX).

           EJECT
       C500-GET-T231LINE-HDRS.

           MOVE 'C500'      TO CA-PARAGRAPH-NBR.

           MOVE WS-M-MAX-LN-C     TO F-LN-C       IN DCLT231LINE.
           MOVE WS-M-MAX-RECTYP-C TO DB-RECTYP-C  IN DCLT231LINE.
           MOVE WS-M-MAX-LN-N     TO F-LN-N       IN DCLT231LINE.
           MOVE WS-M-MAX-SEQ-N    TO A-SEQ-N      IN DCLT231LINE.

           EXEC SQL
                OPEN CSR_3
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           MOVE +1 TO W0001-IX.

           PERFORM UNTIL SQLCODE NOT EQUAL ZERO
                      OR W0001-IX > W0001-SCREEN-LINE-LIMIT
               EXEC SQL
                    FETCH CSR_3
                     INTO :DCLT231LINE.F-LN-C
                        , :DCLT231LINE.F-LN-N
                        , :DCLT231LINE.A-SEQ-N
                        , :DCLT231LINE.DB-RECTYP-C
                        , :DCLT231LINE.F-LN-X
                        , :DCLT231LINE.F-FMTTYP-C
                        , :DCLT231LINE.F-CALC01-C
                        , :DCLT231LINE.F-CALC02-C
                        , :DCLT231LINE.F-CALC03-C
                        , :DCLT231LINE.F-CALC04-C
                        , :DCLT231LINE.F-CALC05-C
                        , :DCLT231LINE.F-CALC06-C
                        , :DCLT231LINE.F-CALC07-C
                        , :DCLT231LINE.F-CALC08-C
                        , :DCLT231LINE.F-CALC01-X
                        , :DCLT231LINE.F-CALC02-X
                        , :DCLT231LINE.F-CALC03-X
                        , :DCLT231LINE.F-CALC04-X
                        , :DCLT231LINE.F-CALC05-X
                        , :DCLT231LINE.F-CALC06-X
                        , :DCLT231LINE.F-CALC07-X
                        , :DCLT231LINE.F-CALC08-X
               END-EXEC

               PERFORM Z900-DB2-CHECK

               IF  DB2-NORMAL
                   IF  W0001-IX = 1
                       MOVE F-LN-C       IN DCLT231LINE
                         TO WS-M-MIN-LN-C
                       MOVE DB-RECTYP-C  IN DCLT231LINE
                         TO WS-M-MIN-RECTYP-C
                       MOVE F-LN-N       IN DCLT231LINE
                         TO WS-M-MIN-LN-N
                       MOVE A-SEQ-N      IN DCLT231LINE
                         TO WS-M-MIN-SEQ-N
                   END-IF

                   PERFORM C210-MOVE-DB-TO-MAP-SAVE

                   INITIALIZE W0002-T231LINE

                   PERFORM C230-BUILD-REC-TYPE-1

                   MOVE W0002-T231LINE
                     TO M-DATA-XI         (W0001-IX)

                   ADD +1 TO W0001-IX
               END-IF
           END-PERFORM.

           MOVE F-LN-C       IN DCLT231LINE
             TO WS-M-MAX-LN-C.
           MOVE DB-RECTYP-C  IN DCLT231LINE
             TO WS-M-MAX-RECTYP-C.
           MOVE F-LN-N       IN DCLT231LINE
             TO WS-M-MAX-LN-N.
           MOVE A-SEQ-N      IN DCLT231LINE
             TO WS-M-MAX-SEQ-N.

           IF  DB2-END-OF-FILE
               MOVE W9999-MSG-004  TO M-MSG-22I
               SET ERRORS          TO TRUE
               MOVE -1             TO M-LN-CL
           END-IF.

           EXEC SQL
               CLOSE CSR_3
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           IF  NO-ERRORS
               MOVE W9999-MSG-001  TO M-MSG-22I
               MOVE -1             TO M-LN-CL
           END-IF.

           EJECT
       D000-PROCESS-PREV-PAGE.

           MOVE 'D000'      TO CA-PARAGRAPH-NBR.

           IF  NO-ERRORS
               IF  DISPLAY-LINES
                   PERFORM D200-GET-T231LINE-LINES
               ELSE
                   PERFORM D500-GET-T231LINE-HDRS
               END-IF

               IF  W0001-IX >= 1 AND < W0001-SCREEN-LINE-LIMIT
                   PERFORM UNTIL W0001-IX < 1
                       PERFORM C400-MOVE-BLANKS-TO-SCREEN
                       SUBTRACT +1 FROM W0001-IX
                   END-PERFORM
               END-IF
           ELSE
               PERFORM VARYING W0001-IX FROM 1 BY 1
                 UNTIL W0001-IX > W0001-SCREEN-LINE-LIMIT
                   PERFORM C400-MOVE-BLANKS-TO-SCREEN
               END-PERFORM
           END-IF.

           IF  NO-ERRORS
               MOVE -1            TO M-ACT-CL(1)
               MOVE W9999-MSG-003 TO M-MSG-22I
           END-IF.

           EJECT
       D200-GET-T231LINE-LINES.

           MOVE 'D200'      TO CA-PARAGRAPH-NBR.

           MOVE WS-M-MIN-LN-C     TO F-LN-C       IN DCLT231LINE.
           MOVE WS-M-MIN-RECTYP-C TO DB-RECTYP-C  IN DCLT231LINE.
           MOVE WS-M-MIN-LN-N     TO F-LN-N       IN DCLT231LINE.
           MOVE WS-M-MIN-SEQ-N    TO A-SEQ-N      IN DCLT231LINE.

           EXEC SQL
                OPEN CSR_2
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           MOVE W0001-SCREEN-LINE-LIMIT TO W0001-IX.

           PERFORM UNTIL SQLCODE NOT EQUAL ZERO
                      OR W0001-IX < 1
               EXEC SQL
                    FETCH CSR_2
                     INTO :DCLT231LINE.F-LN-C
                        , :DCLT231LINE.F-LN-N
                        , :DCLT231LINE.A-SEQ-N
                        , :DCLT231LINE.DB-RECTYP-C
                        , :DCLT231LINE.F-LN-X
                        , :DCLT231LINE.F-FMTTYP-C
                        , :DCLT231LINE.F-CALC01-C
                        , :DCLT231LINE.F-CALC02-C
                        , :DCLT231LINE.F-CALC03-C
                        , :DCLT231LINE.F-CALC04-C
                        , :DCLT231LINE.F-CALC05-C
                        , :DCLT231LINE.F-CALC06-C
                        , :DCLT231LINE.F-CALC07-C
                        , :DCLT231LINE.F-CALC08-C
                        , :DCLT231LINE.F-CALC01-X
                        , :DCLT231LINE.F-CALC02-X
                        , :DCLT231LINE.F-CALC03-X
                        , :DCLT231LINE.F-CALC04-X
                        , :DCLT231LINE.F-CALC05-X
                        , :DCLT231LINE.F-CALC06-X
                        , :DCLT231LINE.F-CALC07-X
                        , :DCLT231LINE.F-CALC08-X
               END-EXEC

               PERFORM Z900-DB2-CHECK

               IF  DB2-NORMAL
                   INITIALIZE W0002-T231LINE

                   EVALUATE TRUE
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = '/'
                            PERFORM C220-BUILD-COMMENT
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = 'P'
                            PERFORM C230-BUILD-REC-TYPE-1
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = 'R'
                            PERFORM C230-BUILD-REC-TYPE-1
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = 'O'
                            PERFORM C230-BUILD-REC-TYPE-1
                       WHEN OTHER
                            PERFORM C240-BUILD-REC-TYPE-2
                   END-EVALUATE

                   PERFORM C210-MOVE-DB-TO-MAP-SAVE

                   MOVE W0002-T231LINE
                     TO M-DATA-XI         (W0001-IX)

                   IF  W0001-IX = W0001-SCREEN-LINE-LIMIT
                       MOVE F-LN-C       IN DCLT231LINE
                         TO WS-M-MAX-LN-C
                       MOVE DB-RECTYP-C  IN DCLT231LINE
                         TO WS-M-MAX-RECTYP-C
                       MOVE F-LN-N       IN DCLT231LINE
                         TO WS-M-MAX-LN-N
                       MOVE A-SEQ-N      IN DCLT231LINE
                         TO WS-M-MAX-SEQ-N
                   END-IF

                   SUBTRACT +1 FROM W0001-IX
               END-IF
           END-PERFORM.

           MOVE F-LN-C       IN DCLT231LINE
             TO WS-M-MIN-LN-C.
           MOVE DB-RECTYP-C  IN DCLT231LINE
             TO WS-M-MIN-RECTYP-C.
           MOVE F-LN-N       IN DCLT231LINE
             TO WS-M-MIN-LN-N.
           MOVE A-SEQ-N      IN DCLT231LINE
             TO WS-M-MIN-SEQ-N.

           IF  DB2-END-OF-FILE
               MOVE W9999-MSG-005  TO M-MSG-22I
               SET ERRORS          TO TRUE
               MOVE -1             TO M-LN-CL
           END-IF.

           EXEC SQL
               CLOSE CSR_2
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           IF  NO-ERRORS
               MOVE W9999-MSG-001  TO M-MSG-22I
               MOVE -1             TO M-LN-CL
           END-IF.

           EJECT
       D500-GET-T231LINE-HDRS.

           MOVE 'D500'      TO CA-PARAGRAPH-NBR.

           MOVE WS-M-MIN-LN-C     TO F-LN-C       IN DCLT231LINE.
           MOVE WS-M-MIN-RECTYP-C TO DB-RECTYP-C  IN DCLT231LINE.
           MOVE WS-M-MIN-LN-N     TO F-LN-N       IN DCLT231LINE.
           MOVE WS-M-MIN-SEQ-N    TO A-SEQ-N      IN DCLT231LINE.

           EXEC SQL
                OPEN CSR_4
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           MOVE W0001-SCREEN-LINE-LIMIT TO W0001-IX.

           PERFORM UNTIL SQLCODE NOT EQUAL ZERO
                      OR W0001-IX < 1
               EXEC SQL
                    FETCH CSR_4
                     INTO :DCLT231LINE.F-LN-C
                        , :DCLT231LINE.F-LN-N
                        , :DCLT231LINE.A-SEQ-N
                        , :DCLT231LINE.DB-RECTYP-C
                        , :DCLT231LINE.F-LN-X
                        , :DCLT231LINE.F-FMTTYP-C
                        , :DCLT231LINE.F-CALC01-C
                        , :DCLT231LINE.F-CALC02-C
                        , :DCLT231LINE.F-CALC03-C
                        , :DCLT231LINE.F-CALC04-C
                        , :DCLT231LINE.F-CALC05-C
                        , :DCLT231LINE.F-CALC06-C
                        , :DCLT231LINE.F-CALC07-C
                        , :DCLT231LINE.F-CALC08-C
                        , :DCLT231LINE.F-CALC01-X
                        , :DCLT231LINE.F-CALC02-X
                        , :DCLT231LINE.F-CALC03-X
                        , :DCLT231LINE.F-CALC04-X
                        , :DCLT231LINE.F-CALC05-X
                        , :DCLT231LINE.F-CALC06-X
                        , :DCLT231LINE.F-CALC07-X
                        , :DCLT231LINE.F-CALC08-X
               END-EXEC

               PERFORM Z900-DB2-CHECK

               IF  DB2-NORMAL
                   INITIALIZE W0002-T231LINE

                   EVALUATE TRUE
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = '/'
                            PERFORM C220-BUILD-COMMENT
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = 'P'
                            PERFORM C230-BUILD-REC-TYPE-1
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = 'R'
                            PERFORM C230-BUILD-REC-TYPE-1
                       WHEN DB-RECTYP-C  IN DCLT231LINE   = 'O'
                            PERFORM C230-BUILD-REC-TYPE-1
                       WHEN OTHER
                            PERFORM C240-BUILD-REC-TYPE-2
                   END-EVALUATE

                   PERFORM C210-MOVE-DB-TO-MAP-SAVE

                   MOVE W0002-T231LINE
                     TO M-DATA-XI         (W0001-IX)

                   IF  W0001-IX = W0001-SCREEN-LINE-LIMIT
                       MOVE F-LN-C       IN DCLT231LINE
                         TO WS-M-MAX-LN-C
                       MOVE DB-RECTYP-C  IN DCLT231LINE
                         TO WS-M-MAX-RECTYP-C
                       MOVE F-LN-N       IN DCLT231LINE
                         TO WS-M-MAX-LN-N
                       MOVE A-SEQ-N      IN DCLT231LINE
                         TO WS-M-MAX-SEQ-N
                   END-IF

                   SUBTRACT +1 FROM W0001-IX
               END-IF
           END-PERFORM.

           MOVE F-LN-C       IN DCLT231LINE
             TO WS-M-MIN-LN-C.
           MOVE DB-RECTYP-C  IN DCLT231LINE
             TO WS-M-MIN-RECTYP-C.
           MOVE F-LN-N       IN DCLT231LINE
             TO WS-M-MIN-LN-N.
           MOVE A-SEQ-N      IN DCLT231LINE
             TO WS-M-MIN-SEQ-N.

           IF  DB2-END-OF-FILE
               MOVE W9999-MSG-005  TO M-MSG-22I
               SET ERRORS          TO TRUE
               MOVE -1             TO M-LN-CL
           END-IF.

           EXEC SQL
               CLOSE CSR_4
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           IF  NO-ERRORS
               MOVE W9999-MSG-001  TO M-MSG-22I
               MOVE -1             TO M-LN-CL
           END-IF.

           EJECT
       E100-PROCESS-ENTER-KEY.

           MOVE 'E100'      TO CA-PARAGRAPH-NBR.

           IF  CA-ENTRY
               MOVE W9999-MSG-021  TO M-MSG-22AI
               MOVE -1             TO M-LN-XAL
           END-IF.

           IF  CA-UPDATE
               MOVE W9999-MSG-019  TO M-MSG-22AI
               MOVE -1             TO M-LN-XAL
           END-IF.

           EJECT
       E200-UPDATE-T231LINE-HDR.

           MOVE 'E200'      TO CA-PARAGRAPH-NBR.

           MOVE WS-M-F-LN-C        (WS-M-INDEX)
             TO F-LN-C             IN DCLT231LINE.
           MOVE WS-M-F-LN-N        (WS-M-INDEX)
             TO F-LN-N             IN DCLT231LINE.

           PERFORM I300-DELETE-T231LINE-NBR-GROUP.

           IF  NO-ERRORS
               PERFORM E300-INSERT-T231LINE-CMTS
               IF  NO-ERRORS
                   PERFORM E400-INSERT-T231LINE-HDR
               END-IF
           END-IF.

           IF  NO-ERRORS
               SET INSERT-SUCCESSFUL TO TRUE
               MOVE W9999-MSG-013  TO M-MSG-22AI
               MOVE -1             TO M-LN-XAL
           END-IF.

           EJECT
       E300-INSERT-T231LINE-CMTS.

           MOVE 'E300'      TO CA-PARAGRAPH-NBR.

           MOVE M-LN-CAI
             TO F-LN-C             IN DCLT231LINE.
           MOVE SPACES
             TO F-LN-N             IN DCLT231LINE.
           MOVE '/'
             TO DB-RECTYP-C        IN DCLT231LINE.
           MOVE +0
             TO A-SEQ-N            IN DCLT231LINE.

           IF  NO-ERRORS
               IF  M-CMNT1-XI > SPACES
                   ADD +1 TO A-SEQ-N   IN DCLT231LINE
                   MOVE M-CMNT1-XI
                     TO F-LN-X         IN DCLT231LINE
                   PERFORM E500-INSERT-T231LINE
               END-IF
           END-IF.

           IF  NO-ERRORS
               IF  M-CMNT2-XI > SPACES
                   ADD +1 TO A-SEQ-N   IN DCLT231LINE
                   MOVE M-CMNT2-XI
                     TO F-LN-X         IN DCLT231LINE
                   PERFORM E500-INSERT-T231LINE
               END-IF
           END-IF.

           IF  NO-ERRORS
               IF  M-CMNT3-XI > SPACES
                   ADD +1 TO A-SEQ-N   IN DCLT231LINE
                   MOVE M-CMNT3-XI
                     TO F-LN-X         IN DCLT231LINE
                   PERFORM E500-INSERT-T231LINE
               END-IF
           END-IF.

           IF  NO-ERRORS
               IF  M-CMNT4-XI > SPACES
                   ADD +1 TO A-SEQ-N   IN DCLT231LINE
                   MOVE M-CMNT4-XI
                     TO F-LN-X         IN DCLT231LINE
                   PERFORM E500-INSERT-T231LINE
               END-IF
           END-IF.

           EJECT
       E400-INSERT-T231LINE-HDR.

           MOVE 'E400'      TO CA-PARAGRAPH-NBR.

           MOVE M-LN-CAI
             TO F-LN-C             IN DCLT231LINE.
           MOVE SPACES
             TO F-LN-N             IN DCLT231LINE.
           MOVE M-RECTYP-CI
             TO DB-RECTYP-C        IN DCLT231LINE.
           ADD +1
             TO A-SEQ-N            IN DCLT231LINE.
           MOVE M-LN-XAI
             TO F-LN-X             IN DCLT231LINE.

           PERFORM E500-INSERT-T231LINE.

           IF  DB2-NORMAL
               SET INSERT-SUCCESSFUL TO TRUE

               MOVE F-LN-C              IN DCLT231LINE
                 TO WS-M-MIN-LN-C
               MOVE DB-RECTYP-C         IN DCLT231LINE
                 TO WS-M-MIN-RECTYP-C
               MOVE F-LN-N              IN DCLT231LINE
                 TO WS-M-MIN-LN-N
               MOVE A-SEQ-N             IN DCLT231LINE
                 TO WS-M-MIN-SEQ-N
           END-IF.

           IF  NO-ERRORS
               MOVE W9999-MSG-012  TO M-MSG-22AI
               MOVE -1             TO M-LN-XAL
           END-IF.

           EJECT
       E500-INSERT-T231LINE.

           MOVE 'E500' TO CA-PARAGRAPH-NBR.

           EXEC SQL
             INSERT INTO D231.T231LINE
                 ( F_LN_C
                 , F_LN_N
                 , A_SEQ_N
                 , DB_RECTYP_C
                 , F_LN_X
                 , F_FMTTYP_C
                 , F_CALC01_C
                 , F_CALC02_C
                 , F_CALC03_C
                 , F_CALC04_C
                 , F_CALC05_C
                 , F_CALC06_C
                 , F_CALC07_C
                 , F_CALC08_C
                 , F_CALC01_X
                 , F_CALC02_X
                 , F_CALC03_X
                 , F_CALC04_X
                 , F_CALC05_X
                 , F_CALC06_X
                 , F_CALC07_X
                 , F_CALC08_X
                 , DB_UPD_D
                 , DB_UPD_T )
             VALUES
                 ( :DCLT231LINE.F-LN-C
                 , :DCLT231LINE.F-LN-N
                 , :DCLT231LINE.A-SEQ-N
                 , :DCLT231LINE.DB-RECTYP-C
                 , :DCLT231LINE.F-LN-X
                 , :DCLT231LINE.F-FMTTYP-C
                 , :DCLT231LINE.F-CALC01-C
                 , :DCLT231LINE.F-CALC02-C
                 , :DCLT231LINE.F-CALC03-C
                 , :DCLT231LINE.F-CALC04-C
                 , :DCLT231LINE.F-CALC05-C
                 , :DCLT231LINE.F-CALC06-C
                 , :DCLT231LINE.F-CALC07-C
                 , :DCLT231LINE.F-CALC08-C
                 , :DCLT231LINE.F-CALC01-X
                 , :DCLT231LINE.F-CALC02-X
                 , :DCLT231LINE.F-CALC03-X
                 , :DCLT231LINE.F-CALC04-X
                 , :DCLT231LINE.F-CALC05-X
                 , :DCLT231LINE.F-CALC06-X
                 , :DCLT231LINE.F-CALC07-X
                 , :DCLT231LINE.F-CALC08-X
                 , CURRENT DATE
                 , CURRENT TIME )
           END-EXEC.

           PERFORM Z900-DB2-CHECK.

           EJECT
       F100-PROCESS-ENTER-KEY.

           MOVE 'F100'      TO CA-PARAGRAPH-NBR.

           IF  NO-ERRORS
               MOVE W9999-MSG-019  TO M-MSG-22BI
               MOVE -1             TO M-LN-XBL
           END-IF.

           EJECT
       F200-UPDATE-T231LINE-LINE.

           MOVE 'F200'      TO CA-PARAGRAPH-NBR.

           MOVE M-LN-CBI
             TO F-LN-C            IN DCLT231LINE.
           MOVE M-LN-NBI
             TO F-LN-N            IN DCLT231LINE.

           PERFORM I300-DELETE-T231LINE-NBR-GROUP.

           IF  NO-ERRORS
               PERFORM F300-INSERT-T231LINE-CMT
               IF  NO-ERRORS
                   PERFORM F400-INSERT-T231LINE-LINE
               END-IF
           END-IF.

           IF  NO-ERRORS
               SET INSERT-SUCCESSFUL TO TRUE
               MOVE W9999-MSG-013    TO M-MSG-22BI
               MOVE -1               TO M-LN-XBL
           END-IF.

           EJECT
       F300-INSERT-T231LINE-CMT.

           MOVE 'F300'      TO CA-PARAGRAPH-NBR.

           MOVE M-LN-CBI
             TO F-LN-C            IN DCLT231LINE.
           MOVE '/'
             TO DB-RECTYP-C       IN DCLT231LINE.
           MOVE M-LN-NBI
             TO F-LN-N            IN DCLT231LINE.

           IF  M-CMNTB-XI > SPACES
               MOVE +1
                 TO A-SEQ-N       IN DCLT231LINE
               MOVE M-CMNTB-XI
                 TO F-LN-X        IN DCLT231LINE
               PERFORM E500-INSERT-T231LINE
           END-IF.

           EJECT
       F400-INSERT-T231LINE-LINE.

           MOVE 'F400'      TO CA-PARAGRAPH-NBR.

           PERFORM F410-INSERT-T231LINE-LINE-1.

           IF  NO-ERRORS
               IF  M-CALC01-CBI (2) > SPACES
                   PERFORM F420-INSERT-T231LINE-LINE-2
               END-IF
           END-IF.

           IF  NO-ERRORS
               IF  M-CALC01-CBI (3) > SPACES
                   PERFORM F430-INSERT-T231LINE-LINE-3
               END-IF
           END-IF.

           IF  NO-ERRORS
               IF  M-CALC01-CBI (4) > SPACES
                   PERFORM F440-INSERT-T231LINE-LINE-4
               END-IF
           END-IF.

           IF  NO-ERRORS
               IF  M-CALC01-CBI (5) > SPACES
                   PERFORM F450-INSERT-T231LINE-LINE-5
               END-IF
           END-IF.

           IF  NO-ERRORS
               SET INSERT-SUCCESSFUL TO TRUE

               MOVE F-LN-C              IN DCLT231LINE
                 TO WS-M-MIN-LN-C
               MOVE DB-RECTYP-C         IN DCLT231LINE
                 TO WS-M-MIN-RECTYP-C
               MOVE F-LN-N              IN DCLT231LINE
                 TO WS-M-MIN-LN-N
               MOVE A-SEQ-N             IN DCLT231LINE
                 TO WS-M-MIN-SEQ-N

               MOVE W9999-MSG-012  TO M-MSG-22BI
               MOVE -1             TO M-LN-XBL
           ELSE
               PERFORM Y600-ROLLBACK
           END-IF.

           EJECT
       F410-INSERT-T231LINE-LINE-1.

           MOVE 'F410'      TO CA-PARAGRAPH-NBR.

           PERFORM F411-ADJUST-CALC-ENTRIES.

           MOVE M-LN-CBI
             TO F-LN-C            IN DCLT231LINE.
           MOVE 'L'
             TO DB-RECTYP-C       IN DCLT231LINE.
           ADD  +1
             TO A-SEQ-N           IN DCLT231LINE.
           MOVE M-LN-NBI
             TO F-LN-N            IN DCLT231LINE

           MOVE M-LN-XBI
             TO F-LN-X            IN DCLT231LINE.

           MOVE M-FMT-CI
             TO F-FMTTYP-C        IN DCLT231LINE.
           MOVE M-CALC01-CBI (1)
             TO F-CALC01-C        IN DCLT231LINE.
           MOVE M-CALC02-CBI (1)
             TO F-CALC02-C        IN DCLT231LINE.
           MOVE M-CALC03-CBI (1)
             TO F-CALC03-C        IN DCLT231LINE.
           MOVE M-CALC04-CBI (1)
             TO F-CALC04-C        IN DCLT231LINE.
           MOVE M-CALC05-CBI (1)
             TO F-CALC05-C        IN DCLT231LINE.
           MOVE M-CALC06-CBI (1)
             TO F-CALC06-C        IN DCLT231LINE.
           MOVE M-CALC07-CBI (1)
             TO F-CALC07-C        IN DCLT231LINE.
           MOVE M-CALC08-CBI (1)
             TO F-CALC08-C        IN DCLT231LINE.
           MOVE M-CALC01-XBI (1)
             TO F-CALC01-X        IN DCLT231LINE.
           MOVE M-CALC02-XBI (1)
             TO F-CALC02-X        IN DCLT231LINE.
           MOVE M-CALC03-XBI (1)
             TO F-CALC03-X        IN DCLT231LINE.
           MOVE M-CALC04-XBI (1)
             TO F-CALC04-X        IN DCLT231LINE.
           MOVE M-CALC05-XBI (1)
             TO F-CALC05-X        IN DCLT231LINE.
           MOVE M-CALC06-XBI (1)
             TO F-CALC06-X        IN DCLT231LINE.
           MOVE M-CALC07-XBI (1)
             TO F-CALC07-X        IN DCLT231LINE.
           MOVE M-CALC08-XBI (1)
             TO F-CALC08-X        IN DCLT231LINE.

           PERFORM E500-INSERT-T231LINE.

           EJECT
       F411-ADJUST-CALC-ENTRIES.

           MOVE 'F411'      TO CA-PARAGRAPH-NBR.

           INITIALIZE    W0003-CALC-TABLE.
           SET W0003-IX  TO +1.
           MOVE +1       TO W0001-IX2.

           PERFORM VARYING W0001-IX2 FROM 1 BY 1
                     UNTIL W0001-IX2 > 5
               IF  M-CALC01-CBI (W0001-IX2) > SPACES
                   MOVE M-CALC01-CBI (W0001-IX2)
                     TO W0003-CALC-C (W0003-IX)
                   MOVE M-CALC01-XBI (W0001-IX2)
                     TO W0003-CALC-X (W0003-IX)
                   SET W0003-IX UP BY +1
               END-IF
               IF  M-CALC02-CBI (W0001-IX2) > SPACES
                   MOVE M-CALC02-CBI (W0001-IX2)
                     TO W0003-CALC-C (W0003-IX)
                   MOVE M-CALC02-XBI (W0001-IX2)
                     TO W0003-CALC-X (W0003-IX)
                   SET W0003-IX UP BY +1
               END-IF
               IF  M-CALC03-CBI (W0001-IX2) > SPACES
                   MOVE M-CALC03-CBI (W0001-IX2)
                     TO W0003-CALC-C (W0003-IX)
                   MOVE M-CALC03-XBI (W0001-IX2)
                     TO W0003-CALC-X (W0003-IX)
                   SET W0003-IX UP BY +1
               END-IF
               IF  M-CALC04-CBI (W0001-IX2) > SPACES
                   MOVE M-CALC04-CBI (W0001-IX2)
                     TO W0003-CALC-C (W0003-IX)
                   MOVE M-CALC04-XBI (W0001-IX2)
                     TO W0003-CALC-X (W0003-IX)
                   SET W0003-IX UP BY +1
               END-IF
               IF  M-CALC05-CBI (W0001-IX2) > SPACES
                   MOVE M-CALC05-CBI (W0001-IX2)
                     TO W0003-CALC-C (W0003-IX)
                   MOVE M-CALC05-XBI (W0001-IX2)
                     TO W0003-CALC-X (W0003-IX)
                   SET W0003-IX UP BY +1
               END-IF
               IF  M-CALC06-CBI (W0001-IX2) > SPACES
                   MOVE M-CALC06-CBI (W0001-IX2)
                     TO W0003-CALC-C (W0003-IX)
                   MOVE M-CALC06-XBI (W0001-IX2)
                     TO W0003-CALC-X (W0003-IX)
                   SET W0003-IX UP BY +1
               END-IF
               IF  M-CALC07-CBI (W0001-IX2) > SPACES
                   MOVE M-CALC07-CBI (W0001-IX2)
                     TO W0003-CALC-C (W0003-IX)
                   MOVE M-CALC07-XBI (W0001-IX2)
                     TO W0003-CALC-X (W0003-IX)
                   SET W0003-IX UP BY +1
               END-IF
               IF  M-CALC08-CBI (W0001-IX2) > SPACES
                   MOVE M-CALC08-CBI (W0001-IX2)
                     TO W0003-CALC-C (W0003-IX)
                   MOVE M-CALC08-XBI (W0001-IX2)
                     TO W0003-CALC-X (W0003-IX)
                   SET W0003-IX UP BY +1
               END-IF
           END-PERFORM.

           MOVE W0003-CALC-C (01)   TO M-CALC01-CBI (1)
           MOVE W0003-CALC-X (01)   TO M-CALC01-XBI (1)
           MOVE W0003-CALC-C (02)   TO M-CALC02-CBI (1)
           MOVE W0003-CALC-X (02)   TO M-CALC02-XBI (1)
           MOVE W0003-CALC-C (03)   TO M-CALC03-CBI (1)
           MOVE W0003-CALC-X (03)   TO M-CALC03-XBI (1)
           MOVE W0003-CALC-C (04)   TO M-CALC04-CBI (1)
           MOVE W0003-CALC-X (04)   TO M-CALC04-XBI (1)
           MOVE W0003-CALC-C (05)   TO M-CALC05-CBI (1)
           MOVE W0003-CALC-X (05)   TO M-CALC05-XBI (1)
           MOVE W0003-CALC-C (06)   TO M-CALC06-CBI (1)
           MOVE W0003-CALC-X (06)   TO M-CALC06-XBI (1)
           MOVE W0003-CALC-C (07)   TO M-CALC07-CBI (1)
           MOVE W0003-CALC-X (07)   TO M-CALC07-XBI (1)
           MOVE W0003-CALC-C (08)   TO M-CALC08-CBI (1)
           MOVE W0003-CALC-X (08)   TO M-CALC08-XBI (1)

           MOVE W0003-CALC-C (09)   TO M-CALC01-CBI (2)
           MOVE W0003-CALC-X (09)   TO M-CALC01-XBI (2)
           MOVE W0003-CALC-C (10)   TO M-CALC02-CBI (2)
           MOVE W0003-CALC-X (10)   TO M-CALC02-XBI (2)
           MOVE W0003-CALC-C (11)   TO M-CALC03-CBI (2)
           MOVE W0003-CALC-X (11)   TO M-CALC03-XBI (2)
           MOVE W0003-CALC-C (12)   TO M-CALC04-CBI (2)
           MOVE W0003-CALC-X (12)   TO M-CALC04-XBI (2)
           MOVE W0003-CALC-C (13)   TO M-CALC05-CBI (2)
           MOVE W0003-CALC-X (13)   TO M-CALC05-XBI (2)
           MOVE W0003-CALC-C (14)   TO M-CALC06-CBI (2)
           MOVE W0003-CALC-X (14)   TO M-CALC06-XBI (2)
           MOVE W0003-CALC-C (15)   TO M-CALC07-CBI (2)
           MOVE W0003-CALC-X (15)   TO M-CALC07-XBI (2)
           MOVE W0003-CALC-C (16)   TO M-CALC08-CBI (2)
           MOVE W0003-CALC-X (16)   TO M-CALC08-XBI (2)

           MOVE W0003-CALC-C (17)   TO M-CALC01-CBI (3)
           MOVE W0003-CALC-X (17)   TO M-CALC01-XBI (3)
           MOVE W0003-CALC-C (18)   TO M-CALC02-CBI (3)
           MOVE W0003-CALC-X (18)   TO M-CALC02-XBI (3)
           MOVE W0003-CALC-C (19)   TO M-CALC03-CBI (3)
           MOVE W0003-CALC-X (19)   TO M-CALC03-XBI (3)
           MOVE W0003-CALC-C (20)   TO M-CALC04-CBI (3)
           MOVE W0003-CALC-X (20)   TO M-CALC04-XBI (3)
           MOVE W0003-CALC-C (21)   TO M-CALC05-CBI (3)
           MOVE W0003-CALC-X (21)   TO M-CALC05-XBI (3)
           MOVE W0003-CALC-C (22)   TO M-CALC06-CBI (3)
           MOVE W0003-CALC-X (22)   TO M-CALC06-XBI (3)
           MOVE W0003-CALC-C (23)   TO M-CALC07-CBI (3)
           MOVE W0003-CALC-X (23)   TO M-CALC07-XBI (3)
           MOVE W0003-CALC-C (24)   TO M-CALC08-CBI (3)
           MOVE W0003-CALC-X (24)   TO M-CALC08-XBI (3)

           MOVE W0003-CALC-C (25)   TO M-CALC01-CBI (4)
           MOVE W0003-CALC-X (25)   TO M-CALC01-XBI (4)
           MOVE W0003-CALC-C (26)   TO M-CALC02-CBI (4)
           MOVE W0003-CALC-X (26)   TO M-CALC02-XBI (4)
           MOVE W0003-CALC-C (27)   TO M-CALC03-CBI (4)
           MOVE W0003-CALC-X (27)   TO M-CALC03-XBI (4)
           MOVE W0003-CALC-C (28)   TO M-CALC04-CBI (4)
           MOVE W0003-CALC-X (28)   TO M-CALC04-XBI (4)
           MOVE W0003-CALC-C (29)   TO M-CALC05-CBI (4)
           MOVE W0003-CALC-X (29)   TO M-CALC05-XBI (4)
           MOVE W0003-CALC-C (30)   TO M-CALC06-CBI (4)
           MOVE W0003-CALC-X (30)   TO M-CALC06-XBI (4)
           MOVE W0003-CALC-C (31)   TO M-CALC07-CBI (4)
           MOVE W0003-CALC-X (31)   TO M-CALC07-XBI (4)
           MOVE W0003-CALC-C (32)   TO M-CALC08-CBI (4)
           MOVE W0003-CALC-X (32)   TO M-CALC08-XBI (4)

           MOVE W0003-CALC-C (33)   TO M-CALC01-CBI (5)
           MOVE W0003-CALC-X (33)   TO M-CALC01-XBI (5)
           MOVE W0003-CALC-C (34)   TO M-CALC02-CBI (5)
           MOVE W0003-CALC-X (34)   TO M-CALC02-XBI (5)
           MOVE W0003-CALC-C (35)   TO M-CALC03-CBI (5)
           MOVE W0003-CALC-X (35)   TO M-CALC03-XBI (5)
           MOVE W0003-CALC-C (36)   TO M-CALC04-CBI (5)
           MOVE W0003-CALC-X (36)   TO M-CALC04-XBI (5)
           MOVE W0003-CALC-C (37)   TO M-CALC05-CBI (5)
           MOVE W0003-CALC-X (37)   TO M-CALC05-XBI (5)
           MOVE W0003-CALC-C (38)   TO M-CALC06-CBI (5)
           MOVE W0003-CALC-X (38)   TO M-CALC06-XBI (5)
           MOVE W0003-CALC-C (39)   TO M-CALC07-CBI (5)
           MOVE W0003-CALC-X (39)   TO M-CALC07-XBI (5)
           MOVE W0003-CALC-C (40)   TO M-CALC08-CBI (5)
           MOVE W0003-CALC-X (40)   TO M-CALC08-XBI (5).

           EJECT
       F420-INSERT-T231LINE-LINE-2.

           MOVE 'F420'      TO CA-PARAGRAPH-NBR.

           MOVE M-LN-CBI
             TO F-LN-C            IN DCLT231LINE.
           MOVE 'L'
             TO DB-RECTYP-C       IN DCLT231LINE.
           ADD  +1
             TO A-SEQ-N           IN DCLT231LINE.
           MOVE M-LN-NBI
             TO F-LN-N            IN DCLT231LINE.

           MOVE SPACES
             TO F-LN-X            IN DCLT231LINE.

           MOVE M-FMT-CI
             TO F-FMTTYP-C        IN DCLT231LINE.

           MOVE M-CALC01-CBI (2)
             TO F-CALC01-C        IN DCLT231LINE.
           MOVE M-CALC02-CBI (2)
             TO F-CALC02-C        IN DCLT231LINE.
           MOVE M-CALC03-CBI (2)
             TO F-CALC03-C        IN DCLT231LINE.
           MOVE M-CALC04-CBI (2)
             TO F-CALC04-C        IN DCLT231LINE.
           MOVE M-CALC05-CBI (2)
             TO F-CALC05-C        IN DCLT231LINE.
           MOVE M-CALC06-CBI (2)
             TO F-CALC06-C        IN DCLT231LINE.
           MOVE M-CALC07-CBI (2)
             TO F-CALC07-C        IN DCLT231LINE.
           MOVE M-CALC08-CBI (2)
             TO F-CALC08-C        IN DCLT231LINE.
           MOVE M-CALC01-XBI (2)
             TO F-CALC01-X        IN DCLT231LINE.
           MOVE M-CALC02-XBI (2)
             TO F-CALC02-X        IN DCLT231LINE.
           MOVE M-CALC03-XBI (2)
             TO F-CALC03-X        IN DCLT231LINE.
           MOVE M-CALC04-XBI (2)
             TO F-CALC04-X        IN DCLT231LINE.
           MOVE M-CALC05-XBI (2)
             TO F-CALC05-X        IN DCLT231LINE.
           MOVE M-CALC06-XBI (2)
             TO F-CALC06-X        IN DCLT231LINE.
           MOVE M-CALC07-XBI (2)
             TO F-CALC07-X        IN DCLT231LINE.
           MOVE M-CALC08-XBI (2)
             TO F-CALC08-X        IN DCLT231LINE.

           PERFORM E500-INSERT-T231LINE.


           EJECT
       F430-INSERT-T231LINE-LINE-3.

           MOVE 'F430'      TO CA-PARAGRAPH-NBR.

           MOVE M-LN-CBI
             TO F-LN-C            IN DCLT231LINE.
           MOVE 'L'
             TO DB-RECTYP-C       IN DCLT231LINE.
           ADD  +1
             TO A-SEQ-N           IN DCLT231LINE.
           MOVE M-LN-NBI
             TO F-LN-N            IN DCLT231LINE.

           MOVE SPACES
             TO F-LN-X            IN DCLT231LINE.

           MOVE M-FMT-CI
             TO F-FMTTYP-C        IN DCLT231LINE.

           MOVE M-CALC01-CBI (3)
             TO F-CALC01-C        IN DCLT231LINE.
           MOVE M-CALC02-CBI (3)
             TO F-CALC02-C        IN DCLT231LINE.
           MOVE M-CALC03-CBI (3)
             TO F-CALC03-C        IN DCLT231LINE.
           MOVE M-CALC04-CBI (3)
             TO F-CALC04-C        IN DCLT231LINE.
           MOVE M-CALC05-CBI (3)
             TO F-CALC05-C        IN DCLT231LINE.
           MOVE M-CALC06-CBI (3)
             TO F-CALC06-C        IN DCLT231LINE.
           MOVE M-CALC07-CBI (3)
             TO F-CALC07-C        IN DCLT231LINE.
           MOVE M-CALC08-CBI (3)
             TO F-CALC08-C        IN DCLT231LINE.
           MOVE M-CALC01-XBI (3)
             TO F-CALC01-X        IN DCLT231LINE.
           MOVE M-CALC02-XBI (3)
             TO F-CALC02-X        IN DCLT231LINE.
           MOVE M-CALC03-XBI (3)
             TO F-CALC03-X        IN DCLT231LINE.
           MOVE M-CALC04-XBI (3)
             TO F-CALC04-X        IN DCLT231LINE.
           MOVE M-CALC05-XBI (3)
             TO F-CALC05-X        IN DCLT231LINE.
           MOVE M-CALC06-XBI (3)
             TO F-CALC06-X        IN DCLT231LINE.
           MOVE M-CALC07-XBI (3)
             TO F-CALC07-X        IN DCLT231LINE.
           MOVE M-CALC08-XBI (3)
             TO F-CALC08-X        IN DCLT231LINE.

           PERFORM E500-INSERT-T231LINE.


           EJECT
       F440-INSERT-T231LINE-LINE-4.

           MOVE 'F440'      TO CA-PARAGRAPH-NBR.

           MOVE M-LN-CBI
             TO F-LN-C            IN DCLT231LINE.
           MOVE 'L'
             TO DB-RECTYP-C       IN DCLT231LINE.
           ADD  +1
             TO A-SEQ-N           IN DCLT231LINE.
           MOVE M-LN-NBI
             TO F-LN-N            IN DCLT231LINE.

           MOVE SPACES
             TO F-LN-X            IN DCLT231LINE.

           MOVE M-FMT-CI
             TO F-FMTTYP-C        IN DCLT231LINE.

           MOVE M-CALC01-CBI (4)
             TO F-CALC01-C        IN DCLT231LINE.
           MOVE M-CALC02-CBI (4)
             TO F-CALC02-C        IN DCLT231LINE.
           MOVE M-CALC03-CBI (4)
             TO F-CALC03-C        IN DCLT231LINE.
           MOVE M-CALC04-CBI (4)
             TO F-CALC04-C        IN DCLT231LINE.
           MOVE M-CALC05-CBI (4)
             TO F-CALC05-C        IN DCLT231LINE.
           MOVE M-CALC06-CBI (4)
             TO F-CALC06-C        IN DCLT231LINE.
           MOVE M-CALC07-CBI (4)
             TO F-CALC07-C        IN DCLT231LINE.
           MOVE M-CALC08-CBI (4)
             TO F-CALC08-C        IN DCLT231LINE.
           MOVE M-CALC01-XBI (4)
             TO F-CALC01-X        IN DCLT231LINE.
           MOVE M-CALC02-XBI (4)
             TO F-CALC02-X        IN DCLT231LINE.
           MOVE M-CALC03-XBI (4)
             TO F-CALC03-X        IN DCLT231LINE.
           MOVE M-CALC04-XBI (4)
             TO F-CALC04-X        IN DCLT231LINE.
           MOVE M-CALC05-XBI (4)
             TO F-CALC05-X        IN DCLT231LINE.
           MOVE M-CALC06-XBI (4)
             TO F-CALC06-X        IN DCLT231LINE.
           MOVE M-CALC07-XBI (4)
             TO F-CALC07-X        IN DCLT231LINE.
           MOVE M-CALC08-XBI (4)
             TO F-CALC08-X        IN DCLT231LINE.

           PERFORM E500-INSERT-T231LINE.


           EJECT
       F450-INSERT-T231LINE-LINE-5.

           MOVE 'F450'      TO CA-PARAGRAPH-NBR.

           MOVE M-LN-CBI
             TO F-LN-C            IN DCLT231LINE.
           MOVE 'L'
             TO DB-RECTYP-C       IN DCLT231LINE.
           ADD  +1
             TO A-SEQ-N           IN DCLT231LINE.
           MOVE M-LN-NBI
             TO F-LN-N            IN DCLT231LINE.

           MOVE SPACES
             TO F-LN-X            IN DCLT231LINE.

           MOVE M-FMT-CI
             TO F-FMTTYP-C        IN DCLT231LINE.

           MOVE M-CALC01-CBI (5)
             TO F-CALC01-C        IN DCLT231LINE.
           MOVE M-CALC02-CBI (5)
             TO F-CALC02-C        IN DCLT231LINE.
           MOVE M-CALC03-CBI (5)
             TO F-CALC03-C        IN DCLT231LINE.
           MOVE M-CALC04-CBI (5)
             TO F-CALC04-C        IN DCLT231LINE.
           MOVE M-CALC05-CBI (5)
             TO F-CALC05-C        IN DCLT231LINE.
           MOVE M-CALC06-CBI (5)
             TO F-CALC06-C        IN DCLT231LINE.
           MOVE M-CALC07-CBI (5)
             TO F-CALC07-C        IN DCLT231LINE.
           MOVE M-CALC08-CBI (5)
             TO F-CALC08-C        IN DCLT231LINE.
           MOVE M-CALC01-XBI (5)
             TO F-CALC01-X        IN DCLT231LINE.
           MOVE M-CALC02-XBI (5)
             TO F-CALC02-X        IN DCLT231LINE.
           MOVE M-CALC03-XBI (5)
             TO F-CALC03-X        IN DCLT231LINE.
           MOVE M-CALC04-XBI (5)
             TO F-CALC04-X        IN DCLT231LINE.
           MOVE M-CALC05-XBI (5)
             TO F-CALC05-X        IN DCLT231LINE.
           MOVE M-CALC06-XBI (5)
             TO F-CALC06-X        IN DCLT231LINE.
           MOVE M-CALC07-XBI (5)
             TO F-CALC07-X        IN DCLT231LINE.
           MOVE M-CALC08-XBI (5)
             TO F-CALC08-X        IN DCLT231LINE.

           PERFORM E500-INSERT-T231LINE.

           EJECT
       F500-RESEQUENCE-LINE-NBRS.

           MOVE 'F500'      TO CA-PARAGRAPH-NBR.

           MOVE W0001-HOLD-OLD-LN-N  TO F-LN-N  IN DCLT231LINE.

           EXEC SQL
                OPEN CSR_6
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           PERFORM UNTIL SQLCODE NOT EQUAL ZERO
                      OR ERRORS
               EXEC SQL
                    FETCH CSR_6
                     INTO :DCLT231LINE.F-LN-C
                        , :DCLT231LINE.F-LN-N
                        , :DCLT231LINE.A-SEQ-N
                        , :DCLT231LINE.DB-RECTYP-C
                        , :DCLT231LINE.F-LN-X
                        , :DCLT231LINE.F-FMTTYP-C
                        , :DCLT231LINE.F-CALC01-C
                        , :DCLT231LINE.F-CALC02-C
                        , :DCLT231LINE.F-CALC03-C
                        , :DCLT231LINE.F-CALC04-C
                        , :DCLT231LINE.F-CALC05-C
                        , :DCLT231LINE.F-CALC06-C
                        , :DCLT231LINE.F-CALC07-C
                        , :DCLT231LINE.F-CALC08-C
                        , :DCLT231LINE.F-CALC01-X
                        , :DCLT231LINE.F-CALC02-X
                        , :DCLT231LINE.F-CALC03-X
                        , :DCLT231LINE.F-CALC04-X
                        , :DCLT231LINE.F-CALC05-X
                        , :DCLT231LINE.F-CALC06-X
                        , :DCLT231LINE.F-CALC07-X
                        , :DCLT231LINE.F-CALC08-X
               END-EXEC

               PERFORM Z900-DB2-CHECK

               IF  DB2-NORMAL
                   PERFORM I210-DELETE-T231LINE-NBR
                   IF  DB2-NORMAL
                       MOVE F-LN-N IN DCLT231LINE  TO W0001-LN-N
                       ADD +1           TO W0001-LN
                       MOVE W0001-LN-N  TO F-LN-N IN DCLT231LINE
                       SET DUP-KEY      TO TRUE
                       PERFORM E500-INSERT-T231LINE
                   ELSE
                       SET ERRORS TO TRUE
                   END-IF
               END-IF
           END-PERFORM.

           EXEC SQL
               CLOSE CSR_6
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           EJECT
       F600-UPDATE-LINE-CALCS.

           MOVE 'F600'      TO CA-PARAGRAPH-NBR.

           MOVE W0001-HOLD-OLD-LN-N  TO F-LN-N  IN DCLT231LINE.

           EXEC SQL
                OPEN CSR_5
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           PERFORM UNTIL SQLCODE NOT EQUAL ZERO
                      OR ERRORS
               EXEC SQL
                    FETCH CSR_5
                     INTO :DCLT231LINE.F-LN-C
                        , :DCLT231LINE.F-LN-N
                        , :DCLT231LINE.A-SEQ-N
                        , :DCLT231LINE.DB-RECTYP-C
                        , :DCLT231LINE.F-LN-X
                        , :DCLT231LINE.F-FMTTYP-C
                        , :DCLT231LINE.F-CALC01-C
                        , :DCLT231LINE.F-CALC02-C
                        , :DCLT231LINE.F-CALC03-C
                        , :DCLT231LINE.F-CALC04-C
                        , :DCLT231LINE.F-CALC05-C
                        , :DCLT231LINE.F-CALC06-C
                        , :DCLT231LINE.F-CALC07-C
                        , :DCLT231LINE.F-CALC08-C
                        , :DCLT231LINE.F-CALC01-X
                        , :DCLT231LINE.F-CALC02-X
                        , :DCLT231LINE.F-CALC03-X
                        , :DCLT231LINE.F-CALC04-X
                        , :DCLT231LINE.F-CALC05-X
                        , :DCLT231LINE.F-CALC06-X
                        , :DCLT231LINE.F-CALC07-X
                        , :DCLT231LINE.F-CALC08-X
               END-EXEC

               PERFORM Z900-DB2-CHECK

               IF  DB2-NORMAL
                   IF (F-CALC01-C IN DCLT231LINE > W0001-OLD-LINE-NBR
                   AND F-CALC01-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC02-C IN DCLT231LINE > W0001-OLD-LINE-NBR
                   AND F-CALC02-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC03-C IN DCLT231LINE > W0001-OLD-LINE-NBR
                   AND F-CALC03-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC04-C IN DCLT231LINE > W0001-OLD-LINE-NBR
                   AND F-CALC04-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC05-C IN DCLT231LINE > W0001-OLD-LINE-NBR
                   AND F-CALC05-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC06-C IN DCLT231LINE > W0001-OLD-LINE-NBR
                   AND F-CALC06-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC07-C IN DCLT231LINE > W0001-OLD-LINE-NBR
                   AND F-CALC07-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC08-C IN DCLT231LINE > W0001-OLD-LINE-NBR
                   AND F-CALC08-C IN DCLT231LINE (1:1) = 'L')
                       PERFORM F610-MOVE-NEW-LINE-NBR
                       PERFORM F620-UPDATE-T231LINE
                   END-IF
               END-IF
           END-PERFORM.

           EXEC SQL
               CLOSE CSR_5
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           EJECT
       F610-MOVE-NEW-LINE-NBR.

           MOVE 'F610'      TO CA-PARAGRAPH-NBR.

           IF  F-CALC01-C IN DCLT231LINE > W0001-OLD-LINE-NBR
           AND F-CALC01-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC01-C IN DCLT231LINE <  'L163'
               MOVE F-CALC01-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               ADD +1  TO W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC01-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC02-C IN DCLT231LINE > W0001-OLD-LINE-NBR
           AND F-CALC02-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC02-C IN DCLT231LINE <  'L163'
               MOVE F-CALC02-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               ADD +1  TO W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC02-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC03-C IN DCLT231LINE > W0001-OLD-LINE-NBR
           AND F-CALC03-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC03-C IN DCLT231LINE <  'L163'
               MOVE F-CALC03-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               ADD +1  TO W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC03-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC04-C IN DCLT231LINE > W0001-OLD-LINE-NBR
           AND F-CALC04-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC04-C IN DCLT231LINE <  'L163'
               MOVE F-CALC04-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               ADD +1  TO W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC04-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC05-C IN DCLT231LINE > W0001-OLD-LINE-NBR
           AND F-CALC05-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC05-C IN DCLT231LINE <  'L163'
               MOVE F-CALC05-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               ADD +1  TO W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC05-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC06-C IN DCLT231LINE > W0001-OLD-LINE-NBR
           AND F-CALC06-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC06-C IN DCLT231LINE <  'L163'
               MOVE F-CALC06-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               ADD +1  TO W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC06-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC07-C IN DCLT231LINE > W0001-OLD-LINE-NBR
           AND F-CALC07-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC07-C IN DCLT231LINE <  'L163'
               MOVE F-CALC07-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               ADD +1  TO W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC07-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC08-C IN DCLT231LINE > W0001-OLD-LINE-NBR
           AND F-CALC08-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC08-C IN DCLT231LINE <  'L163'
               MOVE F-CALC08-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               ADD +1  TO W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC08-C  IN DCLT231LINE
           END-IF.

           EJECT
       F620-UPDATE-T231LINE.

           MOVE 'F620'      TO CA-PARAGRAPH-NBR.

           EXEC SQL
                UPDATE D231.T231LINE
                   SET F_CALC01_C    = :DCLT231LINE.F-CALC01-C
                     , F_CALC02_C    = :DCLT231LINE.F-CALC02-C
                     , F_CALC03_C    = :DCLT231LINE.F-CALC03-C
                     , F_CALC04_C    = :DCLT231LINE.F-CALC04-C
                     , F_CALC05_C    = :DCLT231LINE.F-CALC05-C
                     , F_CALC06_C    = :DCLT231LINE.F-CALC06-C
                     , F_CALC07_C    = :DCLT231LINE.F-CALC07-C
                     , F_CALC08_C    = :DCLT231LINE.F-CALC08-C
                     , F_CALC01_X    = :DCLT231LINE.F-CALC01-X
                     , F_CALC02_X    = :DCLT231LINE.F-CALC02-X
                     , F_CALC03_X    = :DCLT231LINE.F-CALC03-X
                     , F_CALC04_X    = :DCLT231LINE.F-CALC04-X
                     , F_CALC05_X    = :DCLT231LINE.F-CALC05-X
                     , F_CALC06_X    = :DCLT231LINE.F-CALC06-X
                     , F_CALC07_X    = :DCLT231LINE.F-CALC07-X
                     , F_CALC08_X    = :DCLT231LINE.F-CALC08-X
                 WHERE F_LN_C        = :DCLT231LINE.F-LN-C
                   AND F_LN_N        = :DCLT231LINE.F-LN-N
                   AND DB_RECTYP_C   = :DCLT231LINE.DB-RECTYP-C
                   AND A_SEQ_N       = :DCLT231LINE.A-SEQ-N
           END-EXEC.

           PERFORM Z900-DB2-CHECK.

           IF  DB2-NORMAL
               CONTINUE
           ELSE
               SET ERRORS          TO TRUE
               MOVE W9999-MSG-023  TO M-MSG-22I
               MOVE -1             TO M-ACT-CL (1)
           END-IF.

           EJECT
       H000-COPY-TO-NEW-LINE.

           MOVE 'H000' TO CA-PARAGRAPH-NBR.

           PERFORM H100-VALIDATE-KEYS.

           IF  NO-ERRORS
               PERFORM H200-PROCESS-COPY-CURSOR
               IF  NO-ERRORS
                   CONTINUE
               ELSE
                   PERFORM Y600-ROLLBACK
                   SET ERRORS          TO TRUE
                   MOVE -1             TO M-LN-CL
                   MOVE W9999-MSG-037  TO M-MSG-22I
               END-IF
           END-IF.

           IF  NO-ERRORS
               MOVE -1             TO M-LN-CL
               MOVE W9999-MSG-020  TO M-MSG-22I
               INITIALIZE             WS-M-MIN-VALUES
               MOVE M-LN-CI        TO WS-M-MIN-LN-C
               MOVE SPACES         TO M-ACT-CI (WS-M-INDEX)
               MOVE SPACES         TO M-LN-CI
           END-IF.

           EJECT
       H100-VALIDATE-KEYS.

           MOVE 'H100' TO CA-PARAGRAPH-NBR.

           MOVE ZEROES TO W0001-COPY-CTR.

           PERFORM VARYING W0001-X FROM 1 BY 1
             UNTIL W0001-X > W0001-SCREEN-LINE-LIMIT
                   IF  M-ACT-CI (W0001-X) > ' '
                       SET W0001-LINES-SELECTED  TO TRUE
                       MOVE W0001-X              TO WS-M-INDEX
                       ADD +1                    TO W0001-COPY-CTR
                   END-IF
           END-PERFORM.

           IF  W0001-LINES-SELECTED
               IF  W0001-COPY-CTR > +1
                   MOVE W9999-MSG-038  TO M-MSG-22I
                   MOVE -1             TO M-ACT-CL(1)
                   SET ERRORS          TO TRUE
               END-IF
           ELSE
               SET ERRORS              TO TRUE
               MOVE -1                 TO M-LN-CL
               MOVE W9999-MSG-039      TO M-MSG-22I
           END-IF.

           IF  NO-ERRORS
               IF  M-LN-CI = SPACES
                   MOVE W9999-MSG-040  TO M-MSG-22I
                   MOVE -1             TO M-LN-CL
                   SET ERRORS          TO TRUE
               END-IF
           END-IF.

           EJECT
       H200-PROCESS-COPY-CURSOR.

           MOVE 'H200'      TO CA-PARAGRAPH-NBR.

           MOVE WS-M-F-LN-C (WS-M-I  EX)  TO F-LN-C  IN DCLT231LINE.

           EXEC SQL
                OPEN CSR_5
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           PERFORM UNTIL SQLCODE NOT EQUAL ZERO
                      OR ERRORS
               EXEC SQL
                    FETCH CSR_5
                     INTO :DCLT231LINE.F-LN-C
                        , :DCLT231LINE.F-LN-N
                        , :DCLT231LINE.A-SEQ-N
                        , :DCLT231LINE.DB-RECTYP-C
                        , :DCLT231LINE.F-LN-X
                        , :DCLT231LINE.F-FMTTYP-C
                        , :DCLT231LINE.F-CALC01-C
                        , :DCLT231LINE.F-CALC02-C
                        , :DCLT231LINE.F-CALC03-C
                        , :DCLT231LINE.F-CALC04-C
                        , :DCLT231LINE.F-CALC05-C
                        , :DCLT231LINE.F-CALC06-C
                        , :DCLT231LINE.F-CALC07-C
                        , :DCLT231LINE.F-CALC08-C
                        , :DCLT231LINE.F-CALC01-X
                        , :DCLT231LINE.F-CALC02-X
                        , :DCLT231LINE.F-CALC03-X
                        , :DCLT231LINE.F-CALC04-X
                        , :DCLT231LINE.F-CALC05-X
                        , :DCLT231LINE.F-CALC06-X
                        , :DCLT231LINE.F-CALC07-X
                        , :DCLT231LINE.F-CALC08-X
               END-EXEC

               PERFORM Z900-DB2-CHECK

               IF  DB2-NORMAL
                   MOVE M-LN-CI TO F-LN-C IN DCLT231LINE
                   SET DUP-KEY  TO TRUE
                   PERFORM E500-INSERT-T231LINE
                   IF  DB2-NORMAL
                       CONTINUE
                   ELSE
                       SET ERRORS TO TRUE
                   END-IF
               END-IF
           END-PERFORM.

           EXEC SQL
               CLOSE CSR_5
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           EJECT
       I000-DELETE-T231LINE-ENTRIES.

           MOVE 'I000' TO CA-PARAGRAPH-NBR.

           IF  DELETE-REQUESTED
               CONTINUE
           ELSE
               MOVE -1              TO M-LN-CL
               SET ERRORS           TO TRUE
               SET DELETE-REQUESTED TO TRUE
               MOVE W9999-MSG-024   TO M-MSG-22I
           END-IF.

           IF  NO-ERRORS
               IF  DISPLAY-HEADERS
                   PERFORM I100-DELETE-T231LINE-GROUP
               ELSE
                   PERFORM I200-DELETE-T231LINE-NBR
               END-IF
           END-IF.

           IF  NO-ERRORS
               IF  W0001-LINES-SELECTED
                   MOVE -1                  TO M-LN-CL
                   MOVE W9999-MSG-014       TO M-MSG-22I
                   SET DELETE-NOT-REQUESTED TO TRUE
               ELSE
                   MOVE -1                  TO M-LN-CL
                   SET ERRORS               TO TRUE
                   MOVE W9999-MSG-025       TO M-MSG-22I
               END-IF
           ELSE
               PERFORM Y600-ROLLBACK
               SET ERRORS          TO TRUE
           END-IF.

           EJECT
       I100-DELETE-T231LINE-GROUP.

           MOVE 'I100'      TO CA-PARAGRAPH-NBR.

           PERFORM VARYING W0001-X FROM 1 BY 1
             UNTIL W0001-X > W0001-SCREEN-LINE-LIMIT
                   IF  M-ACT-CI (W0001-X) > ' '
                       SET W0001-LINES-SELECTED  TO TRUE
                       MOVE WS-M-F-LN-C (W0001-X)
                         TO F-LN-C      IN DCLT231LINE
                       PERFORM I110-DELETE-T231LINE-GROUP
                       MOVE SPACES TO M-ACT-CI (W0001-X)
                   END-IF
           END-PERFORM.

           EJECT
       I110-DELETE-T231LINE-GROUP.

           MOVE 'I110'      TO CA-PARAGRAPH-NBR.

           EXEC SQL
                DELETE FROM D231.T231LINE
                 WHERE F_LN_C        = :DCLT231LINE.F-LN-C
           END-EXEC.

           PERFORM Z900-DB2-CHECK.

           EJECT
       I200-DELETE-T231LINE-NBR.

           MOVE 'I200'      TO CA-PARAGRAPH-NBR.

           MOVE ZEROES                  TO W0001-COPY-CTR.
           SET W0001-NO-LINES-SELECTED  TO TRUE.

           PERFORM VARYING W0001-X FROM 1 BY 1
             UNTIL W0001-X > W0001-SCREEN-LINE-LIMIT
                   IF  M-ACT-CI (W0001-X) > ' '
                       SET W0001-LINES-SELECTED  TO TRUE
                       MOVE W0001-X              TO WS-M-INDEX
                       ADD +1                    TO W0001-COPY-CTR
                   END-IF
           END-PERFORM.

           IF  W0001-LINES-SELECTED
               IF  W0001-COPY-CTR > +1
                   MOVE W9999-MSG-078  TO M-MSG-22I
                   MOVE -1             TO M-ACT-CL(1)
                   SET ERRORS          TO TRUE
               ELSE
                   MOVE SPACES
                     TO M-ACT-CI           (WS-M-INDEX)
                   MOVE WS-M-F-LN-C        (WS-M-INDEX)
                     TO F-LN-C             IN DCLT231LINE
                   MOVE WS-M-F-LN-N        (WS-M-INDEX)
                     TO F-LN-N             IN DCLT231LINE
                        W0001-HOLD-OLD-LN-N
                   MOVE WS-M-DB-RECTYP-C   (WS-M-INDEX)
                     TO DB-RECTYP-C        IN DCLT231LINE
                   MOVE WS-M-A-SEQ-N       (WS-M-INDEX)
                     TO A-SEQ-N            IN DCLT231LINE

                   IF  WS-M-F-LN-N      (WS-M-INDEX) = SPACES
                   AND WS-M-DB-RECTYP-C (WS-M-INDEX) NOT = '/'
                       PERFORM I110-DELETE-T231LINE-GROUP
                   ELSE
                       PERFORM I210-DELETE-T231LINE-NBR

                       IF  NO-ERRORS
                           IF  DB-RECTYP-C  IN DCLT231LINE = '/'
                               CONTINUE
                           ELSE
                               PERFORM I400-RESEQUENCE-LINE-NBRS
                               IF  NO-ERRORS
                                   PERFORM I500-UPDATE-LINE-CALCS
                               END-IF
                           END-IF
                       END-IF
                   END-IF
               END-IF
           ELSE
               SET ERRORS              TO TRUE
               MOVE -1                 TO M-LN-CL
               MOVE W9999-MSG-079      TO M-MSG-22I
           END-IF.

           EJECT
       I210-DELETE-T231LINE-NBR.

           MOVE 'I210'      TO CA-PARAGRAPH-NBR.

           EXEC SQL
                DELETE FROM D231.T231LINE
                 WHERE F_LN_C        = :DCLT231LINE.F-LN-C
                   AND F_LN_N        = :DCLT231LINE.F-LN-N
                   AND DB_RECTYP_C   = :DCLT231LINE.DB-RECTYP-C
                   AND A_SEQ_N       = :DCLT231LINE.A-SEQ-N
           END-EXEC.

           PERFORM Z900-DB2-CHECK.

           EJECT
       I300-DELETE-T231LINE-NBR-GROUP.

           MOVE 'I300'      TO CA-PARAGRAPH-NBR.

           EXEC SQL
                DELETE FROM D231.T231LINE
                 WHERE F_LN_C        = :DCLT231LINE.F-LN-C
                   AND F_LN_N        = :DCLT231LINE.F-LN-N
           END-EXEC.

           PERFORM Z900-DB2-CHECK.

           EJECT
       I400-RESEQUENCE-LINE-NBRS.

           MOVE 'I400'      TO CA-PARAGRAPH-NBR.

           MOVE W0001-HOLD-OLD-LN-N  TO F-LN-N  IN DCLT231LINE.

           EXEC SQL
                OPEN CSR_7
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           PERFORM UNTIL SQLCODE NOT EQUAL ZERO
                      OR ERRORS
               EXEC SQL
                    FETCH CSR_7
                     INTO :DCLT231LINE.F-LN-C
                        , :DCLT231LINE.F-LN-N
                        , :DCLT231LINE.A-SEQ-N
                        , :DCLT231LINE.DB-RECTYP-C
                        , :DCLT231LINE.F-LN-X
                        , :DCLT231LINE.F-FMTTYP-C
                        , :DCLT231LINE.F-CALC01-C
                        , :DCLT231LINE.F-CALC02-C
                        , :DCLT231LINE.F-CALC03-C
                        , :DCLT231LINE.F-CALC04-C
                        , :DCLT231LINE.F-CALC05-C
                        , :DCLT231LINE.F-CALC06-C
                        , :DCLT231LINE.F-CALC07-C
                        , :DCLT231LINE.F-CALC08-C
                        , :DCLT231LINE.F-CALC01-X
                        , :DCLT231LINE.F-CALC02-X
                        , :DCLT231LINE.F-CALC03-X
                        , :DCLT231LINE.F-CALC04-X
                        , :DCLT231LINE.F-CALC05-X
                        , :DCLT231LINE.F-CALC06-X
                        , :DCLT231LINE.F-CALC07-X
                        , :DCLT231LINE.F-CALC08-X
               END-EXEC

               PERFORM Z900-DB2-CHECK

               IF  DB2-NORMAL
                   PERFORM I210-DELETE-T231LINE-NBR
                   IF  DB2-NORMAL
                       MOVE F-LN-N IN DCLT231LINE  TO W0001-LN-N
                       SUBTRACT +1    FROM W0001-LN
                       MOVE W0001-LN-N  TO F-LN-N IN DCLT231LINE
                       SET DUP-KEY  TO TRUE
                       PERFORM E500-INSERT-T231LINE
                   ELSE
                       SET ERRORS TO TRUE
                   END-IF
               END-IF
           END-PERFORM.

           EXEC SQL
               CLOSE CSR_7
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           EJECT
       I500-UPDATE-LINE-CALCS.

           MOVE 'I500'      TO CA-PARAGRAPH-NBR.

           MOVE W0001-HOLD-OLD-LN-N  TO F-LN-N  IN DCLT231LINE.

           EXEC SQL
                OPEN CSR_5
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           PERFORM UNTIL SQLCODE NOT EQUAL ZERO
                      OR ERRORS
               EXEC SQL
                    FETCH CSR_5
                     INTO :DCLT231LINE.F-LN-C
                        , :DCLT231LINE.F-LN-N
                        , :DCLT231LINE.A-SEQ-N
                        , :DCLT231LINE.DB-RECTYP-C
                        , :DCLT231LINE.F-LN-X
                        , :DCLT231LINE.F-FMTTYP-C
                        , :DCLT231LINE.F-CALC01-C
                        , :DCLT231LINE.F-CALC02-C
                        , :DCLT231LINE.F-CALC03-C
                        , :DCLT231LINE.F-CALC04-C
                        , :DCLT231LINE.F-CALC05-C
                        , :DCLT231LINE.F-CALC06-C
                        , :DCLT231LINE.F-CALC07-C
                        , :DCLT231LINE.F-CALC08-C
                        , :DCLT231LINE.F-CALC01-X
                        , :DCLT231LINE.F-CALC02-X
                        , :DCLT231LINE.F-CALC03-X
                        , :DCLT231LINE.F-CALC04-X
                        , :DCLT231LINE.F-CALC05-X
                        , :DCLT231LINE.F-CALC06-X
                        , :DCLT231LINE.F-CALC07-X
                        , :DCLT231LINE.F-CALC08-X
               END-EXEC

               PERFORM Z900-DB2-CHECK

               IF  DB2-NORMAL
                   IF (F-CALC01-C IN DCLT231LINE >= W0001-OLD-LINE-NBR
                   AND F-CALC01-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC02-C IN DCLT231LINE >= W0001-OLD-LINE-NBR
                   AND F-CALC02-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC03-C IN DCLT231LINE >= W0001-OLD-LINE-NBR
                   AND F-CALC03-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC04-C IN DCLT231LINE >= W0001-OLD-LINE-NBR
                   AND F-CALC04-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC05-C IN DCLT231LINE >= W0001-OLD-LINE-NBR
                   AND F-CALC05-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC06-C IN DCLT231LINE >= W0001-OLD-LINE-NBR
                   AND F-CALC06-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC07-C IN DCLT231LINE >= W0001-OLD-LINE-NBR
                   AND F-CALC07-C IN DCLT231LINE (1:1) = 'L')
                   OR (F-CALC08-C IN DCLT231LINE >= W0001-OLD-LINE-NBR
                   AND F-CALC08-C IN DCLT231LINE (1:1) = 'L')
                       PERFORM I510-MOVE-NEW-LINE-NBR
                       PERFORM F620-UPDATE-T231LINE
                   END-IF
               END-IF
           END-PERFORM.

           EXEC SQL
               CLOSE CSR_5
           END-EXEC.

           SET OPEN-O-CLOSE-CURSOR TO TRUE.
           PERFORM Z900-DB2-CHECK.

           EJECT
       I510-MOVE-NEW-LINE-NBR.

           MOVE 'I510'      TO CA-PARAGRAPH-NBR.

           IF  F-CALC01-C IN DCLT231LINE =  W0001-OLD-LINE-NBR
           AND F-CALC01-C IN DCLT231LINE (1:1) = 'L'
               MOVE 'L???' TO F-CALC01-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC02-C IN DCLT231LINE =  W0001-OLD-LINE-NBR
           AND F-CALC02-C IN DCLT231LINE (1:1) = 'L'
               MOVE 'L???' TO F-CALC02-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC03-C IN DCLT231LINE =  W0001-OLD-LINE-NBR
           AND F-CALC03-C IN DCLT231LINE (1:1) = 'L'
               MOVE 'L???' TO F-CALC03-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC04-C IN DCLT231LINE =  W0001-OLD-LINE-NBR
           AND F-CALC04-C IN DCLT231LINE (1:1) = 'L'
               MOVE 'L???' TO F-CALC04-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC05-C IN DCLT231LINE =  W0001-OLD-LINE-NBR
           AND F-CALC05-C IN DCLT231LINE (1:1) = 'L'
               MOVE 'L???' TO F-CALC05-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC06-C IN DCLT231LINE =  W0001-OLD-LINE-NBR
           AND F-CALC06-C IN DCLT231LINE (1:1) = 'L'
               MOVE 'L???' TO F-CALC06-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC07-C IN DCLT231LINE =  W0001-OLD-LINE-NBR
           AND F-CALC07-C IN DCLT231LINE (1:1) = 'L'
               MOVE 'L???' TO F-CALC07-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC08-C IN DCLT231LINE =  W0001-OLD-LINE-NBR
           AND F-CALC08-C IN DCLT231LINE (1:1) = 'L'
               MOVE 'L???' TO F-CALC08-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC01-C IN DCLT231LINE >  W0001-OLD-LINE-NBR
           AND F-CALC01-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC01-C IN DCLT231LINE <  'L163'
               MOVE F-CALC01-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               SUBTRACT +1 FROM W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC01-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC02-C IN DCLT231LINE >  W0001-OLD-LINE-NBR
           AND F-CALC02-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC02-C IN DCLT231LINE <  'L163'
               MOVE F-CALC02-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               SUBTRACT +1 FROM W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC02-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC03-C IN DCLT231LINE >  W0001-OLD-LINE-NBR
           AND F-CALC03-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC03-C IN DCLT231LINE <  'L163'
               MOVE F-CALC03-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               SUBTRACT +1 FROM W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC03-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC04-C IN DCLT231LINE >  W0001-OLD-LINE-NBR
           AND F-CALC04-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC04-C IN DCLT231LINE <  'L163'
               MOVE F-CALC04-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               SUBTRACT +1 FROM W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC04-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC05-C IN DCLT231LINE >  W0001-OLD-LINE-NBR
           AND F-CALC05-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC05-C IN DCLT231LINE <  'L163'
               MOVE F-CALC05-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               SUBTRACT +1 FROM W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC05-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC06-C IN DCLT231LINE >  W0001-OLD-LINE-NBR
           AND F-CALC06-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC06-C IN DCLT231LINE <  'L163'
               MOVE F-CALC06-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               SUBTRACT +1 FROM W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC06-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC07-C IN DCLT231LINE >  W0001-OLD-LINE-NBR
           AND F-CALC07-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC07-C IN DCLT231LINE <  'L163'
               MOVE F-CALC07-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               SUBTRACT +1 FROM W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC07-C  IN DCLT231LINE
           END-IF.

           IF  F-CALC08-C IN DCLT231LINE >  W0001-OLD-LINE-NBR
           AND F-CALC08-C IN DCLT231LINE (1:1) = 'L'
           AND F-CALC08-C IN DCLT231LINE <  'L163'
               MOVE F-CALC08-C IN DCLT231LINE TO W0001-NEW-LINE-NBR
               SUBTRACT +1 FROM W0001-HOLD-NEW-LN-N-RD
               MOVE W0001-NEW-LINE-NBR
                 TO F-CALC08-C  IN DCLT231LINE
           END-IF.
           EJECT
      **===========================================================**
      **   COPYBOOK AREA FOR CICS CONTROL AND SUB-MODULES          **
      **===========================================================**
           EXEC SQL
              INCLUDE C108Z000
           END-EXEC.

           EJECT
           COPY C108Z900.

           EJECT
           COPY C108Z998.

